Проект внутри SpringBoot 2.6.0 работает, вынужден использовать Log4J1 и перенаправление JCL, но JUL нет
У меня есть проект, в котором последняя сборка теперь SpringBoot 2.6.0 (а более старая - WAR для Tomcat 8). У меня есть подпроект/компонент, который подключается к вещам, которые заставляют меня использовать Log4J1. Logback работал прекрасно, но мне пришлось отключить его (из-за затмения Log4J2 и нарушения кода, требующего Log4J1, а также нового компонента поставщика, требующего также Log4J2).
у меня есть:
- отключил Logback, исключив spring-boot-starter-logging
- Добавлена зависимость для spring-boot-starter-log4j.
На вкладке «Иерархия зависимостей» (в Eclipse) я вижу библиотеки jcl и jul, а в моих журналах (приложения консоли и файла) ясно, что SpringBoot (материал jcl) и любой из моих вызовов jcl проекта регистрируется, но любой JUL нет.
Я прочитал здесь множество разных билетов, собрал информацию и добрался до этого места. Так что все хорошо, за исключением того, что я не могу передать вызовы JUL настройке Log4J1.
Я вижу, как jul-to-slf4j вводится через spring-boot-starter-log4j.
Я думал, что напишу здесь, так как я уверен, что это что-то простое, что я пропустил, но я думаю, что слишком долго смотрел на это сегодня днем! :)
Что я пропустил?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.32</version>
</dependency>
1 ответ
Я получил передачу битов JUL, добавив это:
SLF4JBridgeHandler.install();
java.util.logging.LogManager.getLogManager().getLogger("").setLevel( Level.INFO);
Который я нашел по вопросу JUL to SLF4JBridge