Подтвердить что ты не робот

Собственный ответ на логин VS Logback через SLF4J

Я рассмотрел следующую статью, касающуюся систем ведения журнала, доступных для Java: http://michaelandrews.typepad.com/the_technical_times/2011/04/java-logging-reconsidered.html

Автор упомянул использование SLF4J с Logback. Как это отличается от непосредственного использования Logback. Не лучше ли использовать Logback напрямую, а не для SLF4J, так как Logback построен поверх SLF4J.

4b9b3361

Ответ 1

SLF4J добавляет нулевые служебные данные в Logback, поскольку это просто интерфейс, который реализуется посредством Logback без дополнительного слоя.

Вы должны использовать SLF4J просто потому, что...

  • Это позволяет вам отключиться от Logback, если вам когда-либо понадобится
  • Это ничего не стоит, даже импорт меньше;)
  • Другие люди будут любить вас за использование SLF4J и ненавидят вас за использование определенной структуры ведения журнала, если вы когда-нибудь выпустили свой код в дикую природу.

Единственное место, где вы могли бы напрямую обращаться к журналу "Резервное копирование", было бы (повторно) настраивать ведение журнала вручную в приложении. Потребность в этом возникает иногда, но даже в этом случае работа с Logback будет ограничиваться одним классом или даже методом.

Как правило: библиотеки должны всегда использовать абстракцию ведения журнала, в то время как приложения определяют используемое в них ведение журнала, при необходимости обращаясь к нему напрямую.

Ответ 2

SLF4J не добавляет почти никаких накладных расходов, а в Logback есть встроенные привязки к нему.

Если вы знаете на 100%, что в будущем вам не нужно будет переключиться на другую структуру ведения журналов, перейдите с помощью logback native. Но SLF4J позволяет вам немного абстракции, и вы можете мгновенно переключить бэкэндинг протоколирования.

Резервирование не выполняется поверх SLF4J. SLF4J - это структура абстракции для ведения журнала. Он не выполняет никакой регистрации. Он просто предоставляет унифицированный интерфейс для ведения журнала.