问题原因
缺少log4j依赖
包冲突
包冲突主要原因就是环境中有的地方引用了Log4j,有的地方使用了Log4j2。尤其是使用spring boot时,环境默认是logback,但公司统一使用 log4j2,引入的第三包,使用的是log4j,但是通过common-logging引入的。程序运行时,就出现java.lang.NoClassDefFoundError: org/apache/log4j/Level
。解决方式,所有的日志输出,都通过slf4j的方式,把第三方包的Log4j输出,org.slf4j:log4j-over-slf4j:jar 把log4j 转移到slf4j输出,具体实现则是log4j2。就可以解决,此类异常。
建议
在提供第三包时,建议都通过slf4j。不指定具体的使用,减少引入方,依赖问题。