问题:
在公司测试好的项目包,部署到现场之后,发现项目启动失败。但是日志文件没有打印,查看tomcat中的日志,发现如下错误
项目架构是之前公司大佬制定的,pom文件也是人家写的,定好了用logback那我也不能随意改动,没有办法,只能硬着头皮上了。
思路:
在公司又找了一台服务器来测试,一点问题都没有,正常启动,正常打日志。。。。百思不得其解,两台同样都是redhat6.5的服务器,怎么就会有差距呢。
既然说logback问题,那我干脆吧logback-core.jar和logback-classic.jar删除。这样项目就可以启动,但是发现自己的日志文件没有了,所以必须重新寻找解决方案。
之后就开始在网上查资料,查了两天的资料,发现springboot出现这个问题的人还挺多的,但是按照他们的做了之后并不能解决问题。
- springboot自带logback日志jar包,所以把之前自己引用的去掉。----不好使
- 项目引用了canal,查找canal的pom文件,发现它他也引用了logback,把他引用的也去掉 -----不好使
- 发现手动引用了slf4j的一些jar包,去掉之后 ----好使
解决办法:
最后问题这样稀里糊涂的解决了,对比lib下的jar包,发现有一点不同,就是去掉了slf4j-nop-1.7.2.jar
查看slf4j-nop-1.7.2.jar包中的内容,发现
看来是在执行log绑定的时候,执行了StaticLoggerBinder,而不是logback中的绑定?或者是有冲突,暂时不清楚。