Возможно ли использовать Logback вместе с Log4J2 с Slf4J? - PullRequest
0 голосов
/ 21 мая 2019

У нас есть приложение Java Spring Boot, и мы хотим использовать Log4J2.

Он настроен как проект maven, поэтому в нашем файле pom.xml есть следующая зависимость.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

Поскольку мы импортируем несколько стартовых пакетов с подпружиненной загрузкой, которые связывают logback в качестве реализации ведения журнала по умолчанию, мы используем следующие шаблоны исключения для этих зависимостей, чтобы гарантировать, что Log4J2 выбран в качестве интерфейса ведения журнала по умолчанию через Slf4J.

<exclusions>
    <exclusion>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
    </exclusion>
</exclusions>

Мой вопрос заключается в том, что происходит в случае, если у нас есть другая сторонняя зависимость, которая использует logback внутренне, как свою стратегию ведения журнала по умолчанию.

Мы регистрируемся через SLF4J, который затем направляет вывод журнала в Log4J2 через зависимость log4j-slf4j-impl, которая связана с зависимостью spring-boot-starter-log4j2.

Мне не удалось найти артефакты maven мостов / адаптеров, и у нас не может быть обоих JAR-файлов в приложении, в противном случае по умолчанию пружина будет возвращаться из системы. Я прочитал в logbacks website , что он изначально реализует SLF4J. Означает ли это, что даже если третья сторона зависит от Logback, она все равно будет работать, потому что у нас SLF4J? Любая ясность была бы велика, поскольку я немного запутался.

...