Я пишу инструмент командной строки, который выполняет ряд тестов на наших серверах и сообщает о выводе на экран.
В настоящее время я использую log4j для печати на экран и в файл журнала.
Однако мне было интересно, есть ли лучшая техника для управления всей печатью из одного класса вместо того, чтобы команды «печати» разбросаны по всему коду.
Например,
logger.info("Connecting to environment: " + envName);
if (cmd.hasOption(OPTION_CHECK_PRIMARY)) {
//print primary leg
String primaryLegName = env.getPrimaryLeg().getLegName();
String message = "is primary";
logger.info(String.format("%s : %-4s %s", envName, primaryLegName, message));
}
Это пример вывода, который теперь разбросан по всему моему коду.
Было бы лучше иметь класс Formatter, который обрабатывает всю печать?
Каков наилучший подходсоздать его?
Что вы думаете о чем-то вроде:
Formatter pf = new PlainFormatter();
...
pf.printEnvironment(envName);
if (cmd.hasOption(OPTION_CHECK_PRIMARY)) {
//print primary leg
String primaryLegName = env.getPrimaryLeg().getLegName();
pf.printPrimary(envName, primaryLegName);
}