Нужно ли привязывать SLF4J и адаптер для log4j?

Меня смущает разница между привязкой log4j2-slf4j и адаптером log4j2-slf4j.

Может кто-нибудь объяснить простым языком, в чем различия? Ссылки, которые я установил, говорят, что адаптер "направляет" к SLF4J, а привязка "позволяет SLF4J использовать Log4j", но я не совсем понимаю, что это значит. Кроме того, мне нужны оба или только один из них?

1 ответ

Решение

Вы должны использовать только один. Если вы положите оба, вы будете вызывать бесконечный цикл. Следующее может дать вам представление:

  • Связывание Log4j 2 SLF4J

    Если у вас есть код в вашем приложении, как это:

    // Instance of SLF4J
    private static final org.slf4j.Logger LOG = 
            org.slf4j.LoggerFactory.getLogger(MyClass.class);
    

    И вы хотите использовать Log4J 2 (log4j2.xml), тогда вам может понадобиться:

    Связывание Log4j 2 SLF4J

  • Адаптер Log4j 2 в SLF4J

    Если у вас есть код в вашем приложении, как это:

    // Instance of Log4J 2
    private static final org.apache.logging.log4j.Logger LOG = 
            org.apache.logging.log4j.LogManager.getLogger(MyClass.class);
    

    И вы хотите использовать SLF4J (например, logback.xml), тогда вам может понадобиться:

    Адаптер Log4j 2 в SLF4J

Другие вопросы по тегам