На высоком уровне победа Log4j над ручным ведением журнала заключается в том, что вы можете отделить свой код регистрации от того, что вы действительно хотите регистрировать, и где и как вы хотите его регистрировать. Подробная информация о подробном ведении журнала / фильтрации, форматировании, расположении журнала и даже типе журнала (файлы, сеть и т. Д.) Обрабатывается декларативно с использованием конфигурации и расширяемым образом с помощью пользовательских приложений , скорее вам придется кодировать эту гибкость самостоятельно.
Это критически важно, потому что разработчикам часто сложно предсказать, как изменится необходимость ведения журналов, когда их программное обеспечение будет запущено. Оперативным группам, управляющим этим программным обеспечением, может потребоваться меньше подробных журналов, может потребоваться несколько журналов, может потребоваться отправить эти журналы на несколько серверов, иногда может потребоваться получить действительно подробные данные для устранения неполадок и т. Д. И это обычно невозможно для рабочих групп, если им нужно изменить работу журналов, убедить разработчика сделать большие изменения в коде. Это часто приводит к простоям производства, трениям между операциями и разработкой, а также к бесполезной трате времени.
С точки зрения разработчика, Log4j изолирует вас от необходимости вносить изменения в код для поддержки ведения журналов и защищает вас от вредных привычек со стороны людей, которые хотят вносить изменения в журналы. Это позволяет людям, управляющим вашим кодом, избавиться от собственного зуда, а не глючить с вами!
Кроме того, поскольку Log4j является де-факто стандартом для ведения журналов Java, доступно множество инструментов, которые могут делать классные вещи с помощью Log4j - кроме того, препятствуя вам и вашим операционным командам заново изобретать колесо.
Моя любимая функция - возможность легко писать приложениям, отправляющим данные в не-файловые источники, такие как SYSLOG , Splunk и т. Д., Что упрощает вход в приложение для вашего пользователя в инструменты управления операциями, которые уже используются вашим ИТ-отделом.