0

我有一个项目,其中最新版本现在是 SpringBoot 2.6.0(旧版本是 Tomcat 8 的 WAR)。我有一个子项目/组件连接到迫使我使用 Log4J1 的东西。Logback 运行良好,但我不得不禁用它(由于 Log4J2 遮蔽并破坏了需要 Log4J1 的代码以及需要 Log4J2 的新供应商组件)。

我有:

  1. 通过排除 spring-boot-starter-logging 禁用 Logback
  2. 添加了 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>   
4

1 回答 1

0

我通过添加以下内容获得了 JUL 位管道:

SLF4JBridgeHandler.install();
java.util.logging.LogManager.getLogManager().getLogger("").setLevel( Level.INFO);

我在JUL 到 SLF4J Bridge的问题上发现的

于 2022-02-08T12:20:46.340 回答