Я впервые использую log4j в проекте. Другой программист сказал мне, что использование System.out.println
считается плохим стилем и что log4j в настоящее время является чем-то вроде стандарта для ведения журнала.
Мы много тестируем JUnit — System.out
оказывается сложнее тестировать.
Поэтому я начал использовать log4j для класса контроллера консоли, который просто обрабатывает параметры командной строки.
// log4j logger config
org.apache.log4j.BasicConfigurator.configure();
Logger logger = LoggerFactory.getLogger(Console.class);
Category cat = Category.getRoot();
Кажется, работает:
logger.debug("String");
Производит:
1 [main] DEBUG project.prototype.controller.Console - String
У меня есть два вопроса по этому поводу:
- Исходя из моего базового понимания, использование этого регистратора должно предоставить мне удобные варианты для записи файла журнала с отметками времени - вместо того, чтобы спамить консоль - если в регистраторе включен режим отладки?
- Почему System.out.println сложнее тестировать? Я искал stackoverflow и нашел рецепт тестирования. Поэтому мне интересно, какие преимущества я действительно получаю, используя log4j.
System.out
иSystem.err
дают вам 80% функциональности с 20% адской структуры ведения журнала. - person Sridhar Sarnobat   schedule 29.12.2017