tomcat启动springboot application提示“LoggerFactory is not a Logback LoggerContext but Logback is on the classpath”

Life is short , "play" more!
本文来自lihao's Blog,转载请注明。

tomcat 部署springboot application后(打包成war包部署),提示如上错误。根据下面的堆栈错误原因, 可知slf4j 提供的LoggerFactory 并没有使用Logback 上下文, 但是logback的库被引入到了我们的工程里。 这时候springboot 应用启动的时候, spring框架广播了一个事件, LoggingApplicationListener 侦听到了该事件后,启动了检查工作,发现logback并没有启用, 报了如上错误。 查看如此解决办法可以想到有2个办法。 1)  移除logback 包 , 错误里也提示的比较明确, 使用默认的 log4j 管理日志打印。(因为错误已经明确提示告诉我们,org.apache.logging.slf4j.Log4jLoggerFactory 被默认加载了。 ) 2) 移除log4j , 让slf4j 使用logback 上下文。

 

好的,那么我先尝试移除log4j 。

首先运行 mvn dependency:tree -Dverbose 查看哪些包引入了 log4j或者logback

 如果我们想移除logback, 使用log4j框架,则我们改成如下内容即可。 

 

此篇文章已被阅读459 次


发表评论

电子邮件地址不会被公开。 必填项已用*标注