Spring Boot2 + Gradle5 + Log4j2 启动出现 StackOverflowError 问题的解决方法

在 build.gradle 中配置好 log4j2 后,bootRun 启动项目,抛出以下异常:

Exception in thread "main" java.lang.StackOverflowError
	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
	at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:121)
	at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)
	at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
	at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
...

原因是新引入的 log4j2 与 spring-boot-starter-logging 模块中的 log4j 冲突了:

解决: 在 build.gradle 中,排除 spring-boot-starter-logging 即可:

configurations {
    //排除默认日志
    compile.exclude module:'spring-boot-starter-logging'
}
发布了601 篇原创文章 · 获赞 668 · 访问量 88万+

猜你喜欢

转载自blog.csdn.net/deniro_li/article/details/103843684
今日推荐