SLF4J - SLF4J
Эта статья слишком полагается на Рекомендации к основные источники.Октябрь 2015 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчики) | Чеки Гюльджю |
---|---|
Стабильный выпуск | 1.7.30 / 16 декабря 2019 г.[1] |
Репозиторий | |
Написано в | Ява |
Операционная система | Кроссплатформенность |
Тип | Инструмент регистрации |
Лицензия | Лицензия MIT |
Интернет сайт | www |
Простой фасад журнала для Java (SLF4J) обеспечивает Ява протоколирование API с помощью простого узор фасада. Базовый бэкэнд регистрации определяется в время выполнения добавив желаемую привязку к путь к классам и может быть стандартным пакетом журналов Sun Java java.util.logging,[2] log4j, вход в систему[3] или tinylog.[4][5]
Отделение клиентского API от серверной части журналирования снижает взаимосвязь между приложением и любой конкретной платформой журналирования. Это может упростить интеграцию с существующим или сторонним кодом или доставку кода в другие проекты, которые уже выбрали бэкэнд ведения журнала.
SLF4J был создан Ceki Gülcü как более надежная альтернатива Jakarta Commons Logging framework.[6][7] Исследование в 2013 году 10 000 проектов GitHub показало, что самой популярной библиотекой Java является SLF4J, наряду с JUnit, его используют 30,7% проектов.[8]
Сходства и различия с log4j 1.x
- Используются пять из шести уровней ведения журнала log4j (ERROR, WARN, INFO, DEBUG, TRACE). FATAL был удален на том основании, что внутри фреймворка журналирования нет места для принятия решения о том, когда приложение должно завершиться, и поэтому нет разницы между ERROR и FATAL с точки зрения регистратора. Кроме того, маркеры SLF4J предлагают более общий метод маркировки операторов журнала. Например, любой оператор журнала уровня ERROR может быть помечен маркером «FATAL».
- Экземпляры логгеров создаются через
LoggerFactory
, что очень похоже на log4j. Например,частный статический окончательный Регистратор БРЕВНО = LoggerFactory.getLogger(Вомбат.учебный класс);
- В Регистратор, методы регистрации перегружен с формами, которые принимают одно, два или более значений.[9] Вхождения простого шаблона
{}
в сообщении журнала заменяются по очереди значениями. Это просто использовать, но дает преимущество в производительности, когда значения стоят дорого.нанизывать()
методы. Когда ведение журнала отключено на данном уровне, инфраструктуре ведения журнала не нужно оценивать строковое представление значений или создавать строку сообщения журнала, которая никогда не регистрируется в журнале. В следующем примере конкатенация строк инанизывать()
метод для значенийсчитать
или жеuserAccountList
выполняются только при включенной DEBUG.
БРЕВНО.отлаживать("Есть сейчас" + считать + " учетные записи пользователей: " + userAccountList); // помедленнее БРЕВНО.отлаживать("Сейчас существует {} аккаунтов пользователей: {}", считать, userAccountList); // Быстрее
- Подобные методы существуют в Регистратор за
isDebugEnabled ()
и т. д., чтобы позволить более сложные вызовы журналирования быть обернутыми, чтобы они были отключены при отключении соответствующего уровня, избегая ненужной обработки. - В отличие от log4j, SLF4J предлагает методы ведения журнала, которые принимают маркеры. Это специальные объекты, которые обогащают сообщения журнала. В настоящее время вход в систему это единственная структура, в которой используются маркеры.
Сходства и различия с log4j 2.x
Apache log4j 2.x поддерживает все функции slf4j.[10]
История версий
Версия 2
Версия 2 в настоящее время находится в разработке, с альфа-версия доступна. Требует Java 8 или позже.
Важные дополнения к функциям:
- Поддержка для лямбда-синтаксис при прохождении сообщений для регистрации.
- Беглый API.
Версия 1
Подробную информацию о версии можно найти в руководстве.
Важные версии включают:
- Версия 1.7.30 - это текущий стабильный выпуск. Видеть Скачать страницу продукта.
- Версия 1.7.5 позволила значительно сократить время поиска регистратора.
- Версия 1.7.0 добавлена поддержка varargs, требуя поддержки Java 5 или позже.
- Версия 1.6 принесла бездействие реализация используется по умолчанию, если привязка не найдена.
- Релизы версии 1.1 в репозиториях Maven началось 2006-09.
Смотрите также
Рекомендации
- ^ "Новости SLF4J". slfj4.org. 2019-12-16.
- ^ java.util.logging
- ^ вход в систему
- ^ tinylog
- ^ Привязка SLF4J для tinylog
- ^ "Подумайте еще раз, прежде чем переходить на API общего журналирования"
- ^ «Таксономия проблем загрузчика классов, возникающих при использовании журнала Jakarta Commons»
- ^ «Мы проанализировали 30 000 проектов GitHub - вот 100 лучших библиотек на Java, JS и Ruby».
- ^ SLF4J api docs: Регистратор
- ^ Привязка Apache log4j 2.x slf4j