SLF4J
![]() | |
Разработчик(и) | Чеки Гюльджю |
---|---|
Стабильная версия | 2.0.9
/ 3 сентября 2023 г [ 1 ] |
Репозиторий | |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | Инструмент регистрации |
Лицензия | МОЯ лицензия |
Веб-сайт | www |
Simple Logging Facade for Java ( SLF4J ) предоставляет Java ведения журналов API посредством простого шаблона фасада . Базовый механизм ведения журнала определяется во время выполнения путем добавления желаемой привязки к пути к классам и может представлять собой стандартный пакет ведения журнала Sun Java java.util.logging, [ 2 ] Log4j , Reload4j, Вход в систему [ 3 ] или крошечный журнал. [ 4 ] [ 5 ]
Отделение клиентского API от серверной части ведения журналов уменьшает связь между приложением и любой конкретной платформой ведения журналов. Это может облегчить интеграцию с существующим или сторонним кодом или доставку кода в другие проекты, которые уже выбрали серверную часть журналирования.
SLF4J был создан Чеки Гюльчу как более надежная альтернатива платформе Jakarta Commons Logging. [ 6 ] [ 7 ] Исследование 10 000 проектов GitHub, проведенное в 2013 году, показало, что самой популярной библиотекой Java является SLF4J, наряду с JUnit , ее используют 30,7% проектов. [ 8 ] В январе 2021 года он был признан вторым по популярности проектом по версии mvnrepository. [ 9 ]
Сходства и различия с log4j 1.x
[ редактировать ]- Используются пять из шести уровней ведения журнала log4j (ERROR, WARN, INFO, DEBUG, TRACE). FATAL был исключен на том основании, что внутри структуры ведения журнала нет места, где можно было бы решить, когда приложение должно завершить работу, и поэтому нет никакой разницы между ERROR и FATAL с точки зрения средства ведения журнала. Кроме того, маркеры SLF4J предлагают более общий метод маркировки операторов журнала. Например, любой оператор журнала уровня ERROR может быть помечен маркером «FATAL».
- Экземпляры регистратора создаются с помощью
LoggerFactory
, что очень похоже на log4j. Например,private static final Logger LOG = LoggerFactory.getLogger(Wombat.class);
- В Logger методы журналирования перегружены формами, которые принимают одно, два или более значений. [ 10 ] Появление простого шаблона
{}
в сообщении журнала по очереди заменяются значениями. Это просто в использовании, но обеспечивает выигрыш в производительности, когда значения имеют дорогостоящие значения.toString()
методы. Когда ведение журнала отключено на данном уровне, платформе ведения журнала не требуется оценивать строковое представление значений или создавать строку сообщения журнала, которая фактически никогда не регистрируется. В следующем примере конкатенация строк иtoString()
метод для значенийcount
илиuserAccountList
выполняются только тогда, когда включена DEBUG.
LOG.debug("There are now " + count + " user accounts: " + userAccountList); // slower
LOG.debug("There are now {} user accounts: {}", count, userAccountList); // faster
- Подобные методы существуют в Logger для
isDebugEnabled()
и т. д., чтобы обеспечить перенос более сложных вызовов журналирования, чтобы они отключались при отключении соответствующего уровня, избегая ненужной обработки. - В отличие от log4j , SLF4J предлагает методы журналирования, которые принимают маркеры. Это специальные объекты, которые дополняют сообщения журнала. В настоящее время logback — единственная платформа, использующая маркеры.
Сходства и различия с log4j 2.x
[ редактировать ]Apache log4j 2.x поддерживает все функции slf4j. [ 11 ]
История версий
[ редактировать ]Версия 2
[ редактировать ]Версия 2.0.0 была выпущена 20 августа 2022 г. Последняя версия 2 — 2.0.9 (03.09.2023). [ 12 ]
Значительные изменения и дополнения:
- Поддержка синтаксиса лямбда [ сломанный якорь ] при передаче сообщений, подлежащих регистрации.
- Добавление Fluent API.
- Требуется Java 8 или более поздняя версия.
Версия 1
[ редактировать ]Подробности версии можно найти в руководстве .
Важные версии включают:
- Версия 1.7.36 и все более новые версии воспроизводимы .
- В версии 1.7.35 модуль slf4j-log4j12 заменен на slf4j-reload4j.
- В версии 1.7.33 добавлена поддержка reload4j через модуль slf4j-reload4j. Это последняя стабильная версия. См. страницу загрузки продукта.
- Версия 1.7.5 позволила значительно сократить время получения данных из журнала.
- В версии 1.7.0 добавлена поддержка varargs , требующая поддержки Java 5 или более поздней версии.
- Версия 1.6 представила реализацию без операций , используемую по умолчанию, если привязка не найдена.
- Выпуски версии 1.1 в репозиториях Maven начались в 2006-09 годах .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Новости SLF4J» . slfj4.org . 03.09.2023.
- ^ java.util.logging
- ^ журнал
- ^ крошечный журнал
- ^ «Привязка SLF4J для tinylog» . Архивировано из оригинала 07.12.2017 . Проверено 16 декабря 2014 г.
- ^ «Подумайте еще раз, прежде чем использовать API ведения журнала Commons»
- ^ «Таксономия проблем с загрузчиком классов, возникающих при использовании журнала Jakarta Commons»
- ^ «Мы проанализировали 30 000 проектов GitHub — вот 100 лучших библиотек на Java, JS и Ruby» . Архивировано из оригинала 9 июля 2014 г. Проверено 9 февраля 2014 г.
- ^ Николас, Френкель. « Самый популярный» раздел» . Твиттер . Проверено 16 января 2022 г.
- ^ Документация по API SLF4J: Регистратор
- ^ Привязка Apache log4j 2.x slf4j
- ^ «Новости SLF4J» . www.slf4j.org . Проверено 27 ноября 2023 г.