Я пишу инструмент командной строки, который выполняет множество тестов на наших серверах и выводит на экран вывод.Лучшая техника для печати текста на консоль
В настоящее время я использую 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);
}
Привет, Амир, я использую log4j в данный момент, поэтому я точно как ты говоришь. Тем не менее, я не хочу печатать из разных частей кода, но я бы предпочел иметь один/внешний класс, который обрабатывает печать. Таким образом, если я хочу изменить способ отображения вывода, мне не нужно искать инструкции печати во всех моих классах. – Alessandro
Что вы планируете изменить в будущем? Разве форматирование и ведение журнала не контролируется через файл свойств? Будет ли причина абстрагироваться только от вызова одной строки? –