新的项目,集成了log4j2和slf4j,结果在写log的时候,死活写不进log文件,console倒是可以打印出来
搞了一下午,头都昏了,无奈重新建立了一个干净的工程,只引入springmvc和log4j2等jar包,一步步debug了观察。
终于发现了很奇怪的问题,代码里的Logger对象,在有问题的工程是,发现是org.slf4j.impl.Log4jLoggerAdapter类型,但在干净的工程里,却是org.apache.logging.slf4j.Log4jLogger。
这样推里了看,肯定是哪个jar包导致了问题,无奈mvn查看tree,依次排除引入,还是解决不了。
看系统的启动信息,发现slf4j在找关联类的时候,居然找到了activemq all的jar包,于是pom里,不引入activemq all,改为引入active mq broke等jar包。
重启后,测试了下,log果然成功写入。
一下午就解决了这个问题,也是晕菜了,log4j2的使用,jar包里的冲突是很常见的,还不如直接用logback了。