Spring Boot集成Log4j 2报错:java.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration

时间:2022-03-02 17:22:06

Spring Boot 集成Log4j 2,启动应用时报NoSuchMethodError。

错误信息如下:

20:03:00.950 [main] 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;
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.loadConfiguration(Log4J2LoggingSystem.java:176) ~[spring-boot-1.4.7.RELEASE.jar:1.4.7.RELEASE]

Spring Boot:1.4.7.RELEASE
Log4j 2: 2.7

原因及解决

这是因为Spring Boot1.4.7使用的使用Log4j 2.6,而在Log4j 2.7对此方法做了API break的修改,相关修改查看此提交

有两种方法:

方法一

Log4j改为2.6。

方法二

Spring Boot 升级到1.5.X,最新稳定版为1.5.8.RELEASE