美文网首页
java.lang.StackOverflowError at

java.lang.StackOverflowError at

作者: 和平菌 | 来源:发表于2020-10-27 10:55 被阅读0次

log4j导致栈溢出,报错内容如下:

java.lang.StackOverflowError
at org.apache.logging.log4j.util.StackLocator.getCallerClass(StackLocator.java:125)
at org.apache.logging.log4j.util.StackLocatorUtil.getCallerClass(StackLocatorUtil.java:55)
at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:42)
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)
at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:39)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:37)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:29)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:52)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
... many more
正常情况下,程序启动不可能出现栈溢出,出现栈溢出的问题一般都是递归问题或者循环调用导致,结合报错信息,可以判定是日志依赖包导致的问题。重点排查项目中的日志依赖包。

1.查看项目中是否同时依赖 log4j-over-slf4j.jar 和 slf4j-log4j12.jar
排除掉 log4j-over-slf4j.jar

2.查看项目中是否同时依赖 log4j-slf4j-impl.jar 和 log4j-to-slf4j.jar
排除掉 log4j-to-slf4j.jar

3.查看项目中是否同时依赖 jcl-over-slf4j.jar 和 slf4j-jcl.jar
排除掉 jcl-over-slf4j.jar

以上三组jar包会出导致循环调用问题,根据具体情况,排除掉即可。

作者:何冠希
链接:https://www.jianshu.com/p/3b8b9d77fb96
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

网友评论

      本文标题:java.lang.StackOverflowError at

      本文链接:https://www.haomeiwen.com/subject/gggtvktx.html