Log4j 2.0 и SLF4J и бесконечное будущее фреймворков java logging
Итак, я только что узнал, что Log4J 2.0 сейчас активно разрабатывается, есть альфа-версия, и, как говорят, она заменяет logback.
Сейчас в моем приложении у меня есть около 4, возможно, больше фреймворков регистрации:
- Ведение журнала Java Util
- log4j
- SLF4J
- logback (игнорируется благодаря предоставленному maven хаке)
- запись в сообществах (игнорируется благодаря предоставленному maven хаке)
- И у tomcat есть собственный адаптер JULI
Я использую log4j (1.2.x), потому что, честно говоря, мне просто не нужны функции новых парней, но в последнее время меня соблазняло переключиться на SLF4J и в основном , потому что я не хочу иметь переписать мои сложные файлы конфигурации log4j в новый формат (logback).
Теперь мой вопрос в том, что я должен кодировать, - это SLF4J - правильный выбор для будущего данного log4j 2.0.
Кажется, я должен просто придерживаться старого log4j (1.2.x
), поскольку он является самым низким общим знаменателем?
ОБНОВЛЕНИЕ: при дальнейшем рассмотрении log4j 2.0, при этом очень похоже, что конфигурация не обратно совместима с log4j 1.2. Похоже, что самый лучший выбор - logback.
Ответы
Ответ 1
Это субъективный вопрос.
Я бы предложил использовать slf4j, так как он может использовать log4j в качестве бэкэнд, если это вам нужно.
Вероятно, вы используете несколько компонентов, которые могут использовать разные API протоколирования. Хорошо иметь возможность консолидировать выход через эти API в один выходной маршрут.
Ответ 2
Отказ от ответственности. Я являюсь основателем проектов log4j, slf4j и logback, но не связан с log4j 2.0.
Как я понимаю, несмотря на его имя, log4j 2.0 сильно отличается от log4j 1.x. Что касается API-интерфейса пользователя, log4j 2.0 в значительной степени несовместим с log4j 1.x. Log4j 2.0 обеспечивает уровень адаптации для log4j 1.x, который в настоящее время (2012-08) undocumented
.