java.lang.NoClassDefFoundError: org/apache/log4j/Level错误 与log4j-over-slf4j

  • Post author:
  • Post category:java


问题原因

缺少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。不指定具体的使用,减少引入方,依赖问题。


转载于:https://my.oschina.net/u/3247419/blog/3044538