如何在 Spring-Boot 1.3.6 和 Java-8 中使用 log4j 2.17.1

How to use log4j 2.17.1 in Spring-Boot 1.3.6 with Java-8

我的Java-8项目是使用spring-boot 1.3.6版本构建的,默认继承'log4j-core-2.4.1',但现在我想升级log4j-core到2.17 .1 我为此添加了 2.17.1 到我项目的 pom.xml 文件中。构建运行正常,但错误显示:-

*ERROR org.springframework.boot.SpringApplication - Application startup failed
java.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(Lorg/apache/logging/log4j/core/config/ConfigurationSource;)Lorg/apache/logging/log4j/core/config/Configuration;*

简答:你不能

log4j-core 中的重大更改(参见 LOG4J2-1547)使版本 2.7.0 及更高版本与 Spring Boot 1.3.x 不兼容。您可以:

  • 升级到 Spring Boot 1.5.x 或更高版本,
  • 降级到 Log4j 2.3.2(包括最新的 security patches):
    <properties>
        <log4j2.version>2.3.2</log4j2.version>
    </properties>