Для меня было четыре «убийственные» функции, которые стоили боли при переходе на Logback, помимо тех, что вы уже упоминали (я лично переключил свой текущий крупный проект, работая без нареканий):
- Автоматическая перезагрузка конфигурационных файлов. Это замечательно для производственных систем.Если вы просто хотите установить «отладку» для одного класса, но не разрушать всю систему, этот будет бесценным.
- Возможность использования включаемых файлов в конфигурации. Это позволяет вамиметь «главный» набор параметров ведения журнала для всех ваших служб / JVM, а затем вы можете указать любые пакеты, которые могут потребовать специальной обработки.Сейчас у нас около 10 сервисов, и у них есть большая, но в основном похожая копия log4j.xml.Теперь мы изменили его на один главный файл конфигурации logback и включили этот файл в файл конфигурации logback каждой службы.Главный файл все равно будет большим, но для сервисов он должен быть очень маленьким.Гораздо более удобен для обслуживанияодна конфигурация, которая не должна меняться между рабочими и dev / QA серверами.
- Автоматическое сжатие и удаление старых файлов журнала. Вы можете указать, сколько архивных файлов вы хотите сохранитьи, необязательно, сжать их. После создания файла n + 1 он обнаружит, что его слишком много, и удалит самый старый. Опять же, настраивается для каждого файла / службы, нет необходимости делать что-либо специфичное для системы (пакетные файлы и/ или скрипты).
Кстати, после этого изменения тривиально легко переключиться обратно на log4j. Так как переход на Logback требует использования SLF4J, который также поддерживает Log4j, переключаясь только туда и обратнотребует, чтобы вы выбрали, какой файл jar удалить (Log4j или Logback's). Пока соответствующие файлы конфигурации log4j.xml или logbackв пути к классам ведение журнала будет работать правильно.