Мы используем SLF4J. Это очень полезно, но у некоторых банок есть запутанные имена, и не совсем понятно, когда начинаешь узнавать, какие из них несовместимы.
SLF4J - это API, который вы используете для входа в свой код (например, log.info("blah")
. Однако SLF4J не имеет никакого аспекта конфигурации. Во время выполнения вы добавляете ровно одну банку в путь к классам, который связывает API в «настоящую» подсистему ведения журнала. Если вы хотите использовать Log4J, добавьте slf4j-log4j.jar
или jar StaticBinder для Simple или JDK , или Logback . Вы настраиваете любую из этих реализаций ведения журнала как обычно без SLF4J.
Существует несколько модулей SLF4J , доступных для перенаправления существующих операторов ведения журнала, написанных с использованием API-интерфейсов Log4J, Apache Commons Logging и java.util.logging в SLF4J. Это позволяет вам настроить единую конфигурацию регистрации для всех этих неэффективных реализаций. (Это очень полезно, чтобы избежать настройки, скажем, Log4J и JUL, если у вас есть библиотеки, которые привязываются напрямую к любой устаревшей инфраструктуре ведения журналов.)
Устаревшая страница SLF4J подробно объясняет эти понятия. Черт, есть даже модуль для перенаправления Sysout.out / err в SFL4J.
Чтобы более прямо ответить на ваш вопрос: уверен, что можете написать свою собственную реализацию ведения журнала, чтобы перейти под SLF4J; но единственная причина, по которой это возможно, заключается в том, что вы уже привязаны к какой-то доморощенной фреймворковой системе ведения журналов.