我有一个项目,其中最新版本现在是 SpringBoot 2.6.0(旧版本是 Tomcat 8 的 WAR)。我有一个子项目/组件连接到迫使我使用 Log4J1 的东西。Logback 运行良好,但我不得不禁用它(由于 Log4J2 遮蔽并破坏了需要 Log4J1 的代码以及需要 Log4J2 的新供应商组件)。
我有:
- 通过排除 spring-boot-starter-logging 禁用 Logback
- 添加了 spring-boot-starter-log4j 的依赖项
通过 Dependency hierarchy 选项卡(在 Eclipse 中),我可以看到 jcl 和 jul 库,并且在我的日志(控制台和文件附加程序)中,很明显 SpringBoot(jcl 东西)和我的任何项目 jcl 调用都已记录,但任何 JUL 都是不是。
我在这里阅读了大量不同的门票,收集了信息并达到了这一点。所以这一切都很好,除了我似乎无法将 JUL 调用传递给 Log4J1 设置。
我可以看到通过 spring-boot-starter-log4j 引入的 jul-to-slf4j。
我想我会写在这里,因为我确定这是我错过的一些简单的东西,但我想我今天下午已经盯着它太久了!:)
我错过了什么?
<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>