先说一下,shiro依赖的项目不是log4j 而是 SLF4J框架。
我们原来用1X版本的jar包如下:
log4j-1.2.17.jar
slf4j-api-1.7.22.jar
slf4j-log4j12-1.7.22.jar
其中slf4j-log4j12-1.7.22这就是一个Binding,用来连接log4j和SLF4J的。
shiro项目给的required是这样的
其中就有log4j.properties,说实话我好卵烦,就算shiro很牛逼,是不是也该用一下新的日志工具了,现在官方都提倡使用Log4j2X了。
看着不爽,那就改呗。上网查。。发现都是log4j的,就算有log4j2X的也跟我一点关系也没有。先注意,shiro依赖的不是Log4j,那么我让SLF4J去整合Log4j2X不就行了吗。
于是我查文档,
要想Log4j 2去连接SLF4J 那么就需要这个jar包了。
于是我跟一条傻狗似的去高高兴兴的下载了一个最新版的log4j-slf4j-impl-2.8.2.jar
重启服务器:
虽然很痛苦,但是我用鸡儿一想,应该是不兼容吧,回头一翻Log4j2 的压缩包,真的是这样,2.5的有log4j-slf4j-impl-2.5.jar|2.8的有log4j-slf4j-impl-2.8.2.jar
然后重启项目,ok
总结一下:如果遇到需要依赖SLF4J的Log4j 2X 升级,只需要删除log4j 1X jar包 + 连接包
然后加上log4j2X 的jar包 + 2X 的连接包