Собственный ответ на логин VS Logback через SLF4J
Я рассмотрел следующую статью, касающуюся систем ведения журнала, доступных для Java:
http://michaelandrews.typepad.com/the_technical_times/2011/04/java-logging-reconsidered.html
Автор упомянул использование SLF4J с Logback. Как это отличается от непосредственного использования Logback. Не лучше ли использовать Logback напрямую, а не для SLF4J, так как Logback построен поверх SLF4J.
Ответы
Ответ 1
SLF4J добавляет нулевые служебные данные в Logback, поскольку это просто интерфейс, который реализуется посредством Logback без дополнительного слоя.
Вы должны использовать SLF4J просто потому, что...
- Это позволяет вам отключиться от Logback, если вам когда-либо понадобится
- Это ничего не стоит, даже импорт меньше;)
- Другие люди будут любить вас за использование SLF4J и ненавидят вас за использование определенной структуры ведения журнала, если вы когда-нибудь выпустили свой код в дикую природу.
Единственное место, где вы могли бы напрямую обращаться к журналу "Резервное копирование", было бы (повторно) настраивать ведение журнала вручную в приложении. Потребность в этом возникает иногда, но даже в этом случае работа с Logback будет ограничиваться одним классом или даже методом.
Как правило: библиотеки должны всегда использовать абстракцию ведения журнала, в то время как приложения определяют используемое в них ведение журнала, при необходимости обращаясь к нему напрямую.
Ответ 2
SLF4J не добавляет почти никаких накладных расходов, а в Logback есть встроенные привязки к нему.
Если вы знаете на 100%, что в будущем вам не нужно будет переключиться на другую структуру ведения журналов, перейдите с помощью logback native. Но SLF4J позволяет вам немного абстракции, и вы можете мгновенно переключить бэкэндинг протоколирования.
Резервирование не выполняется поверх SLF4J. SLF4J - это структура абстракции для ведения журнала. Он не выполняет никакой регистрации. Он просто предоставляет унифицированный интерфейс для ведения журнала.