Log4j 2. Обзор
Логированием пользуются почти все средние(большие) приложения, для сбора статистики, выявления ошибок и т.д. Оно играет одну из важных ролей, так как необходимо создать правильный формат сообщения, место хранения этого сообщения, и самое главное, что бы механизм логирования не влиял на производительность системы в целом. Так что же нового появилось во второй версии :
-
В Log4j версии 1.x была проблема потери событий(сообщений) во время runtime пере-конфигурации. В Log4j эта проблема решена.
-
Log4j 2.x имеет асинхронный механизм логирования следующего поколения, построенный на библиотеке LMAX Disruptor. Это позволяет в 10 раз увеличить пропускную способность в многопоточной среде.
-
Log4j 2 использует систему плагинов, которые позволяет легко расширять фрэймворк новыми Appenders, Filters, Layouts, Lookups, и Pattern Converters не требующих никаких изменений самого Log4j.
-
Появилась поддержка Message объектов. Пользователи могут легко создавать собственные сообщения, с кастомными слоями фильтрами и т.д.
-
Проявился большой набор фильтров для Appender-ов для пред-обработки и пост-обработки сообщений.
-
Layouts в Log4j 1.x и Logback возвращают String. В новой версии Layout всегда возвращает мисcив байтов, что даёт возможность использовать эти байты в Appenders а не только для записи в OutputStream.
-
Syslog Appender поддерживает как TCP так и UDP.
-
Log4j 2 использует преимущества concurrency(java 5). Это решило ряд проблем с предыдущей версией, но некоторые классы пока остались синхронизированными(synchronization).
-
Появилась поддержка JMX для мониторинга и конфигурации.
-
Так же появилась возможность сохранять логи в NoSQL хранилищах, таких как CouchDB и MongoDB.
Для тех кто переходит со старой версии на вторую следует помнить :
-
Поддержка java 6 и выше.
-
XML конфигурация была изменена и стала несовместимой с Log4j 1.x.
-
Конфигурация с помощью properties уже не поддерживается.
-
Появилась поддержка JSON или YAML конфигурирования.
-
Log4j 2 несовместима с Log4j 1.x.
Log4j 2 обещает много новых фишек и плюшек, осталось только попробовать их в действии :)
Для более подробной информации прошу на сайт Log4j 2.