【问题标题】:Log4J2 in Spring Boot with embedded Tomcat带有嵌入式 Tomcat 的 Spring Boot 中的 Log4J2
【发布时间】:2016-06-02 16:36:08
【问题描述】:

我试图让 Spring Boot 中的嵌入式 Tomcat 记录到我的 Log4J2 配置,但它不起作用。

根据应对外部 Tomcat 的这个答案:https://stackoverflow.com/a/28639068/1845463 似乎需要将一些 jar 移动到 $Catalina_home/libs 等。我认为这对于 Spring Boot 是不可能的,不是吗?

有人设法让 log4j2 运行并能够为 catalina 日志配置附加程序吗?

提前致谢

【问题讨论】:

    标签: spring-boot log4j2 tomcat8


    【解决方案1】:

    已编辑:最简单的方法是添加spring-boot-starter-log4j2

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

    注意确保其他组件不需要不同版本的 log4j。这可能会导致运行时错误。例如elasticsearch java API 需要 2.6+ 和 spring-boot-starter-log4j2:1.3.8 提供 log4j:2.4.1,如果我们正在构建一个连接弹性搜索和使用 spring boot 的应用程序。然后我们最终会得到 NoSuchMethodError 或类似的错误。为了解决这些错误,我们应该在我们的pom 中添加log4j2:2.6+

    【讨论】:

    • 多么复杂的方式...只需添加 spring-boot-starter-log4j2 而不是您所做的。
    • 试过了,还是不行。它给我带来了很多 org.apache.logging.log4j.Logger 的 NoSuchMethodErrors。
    • @M.Deinum 没有通过添加 log4j2-api 和 log4j2-core 解决此类方法错误。不知有没有更合适的方式!
    • 添加core和api基本上违背了使用starter的目的。启动器的重点是您不需要添加这些依赖项。如果你得到那些 no-such-method 错误,那么还有其他事情正在发生,你可能正在与其他依赖项搞砸。
    • starter中还有其他的依赖,比如将JUL桥接到slf4j的代码;初学者的优势在于它包含了您不知道自己需要的部分。
    【解决方案2】:

    您使用的是哪个 Spring Boot 版本?我相信 1.4.x.RELEASE 将它提升到 log4j2。 正如@M.Deinum 提到的,包括:

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

    引入:

    log4j-corelog4j-api 等等。见https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2/1.4.6.RELEASE

    建议排除logging starter 使用:

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

    【讨论】:

      猜你喜欢
      • 2015-04-18
      • 2017-09-14
      • 2016-02-18
      • 2017-10-21
      • 2018-08-08
      • 1970-01-01
      • 2019-06-30
      • 2018-05-28
      • 1970-01-01
      相关资源
      最近更新 更多