Spring Boot集成Log4j 2报错:java.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration
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