1. 程式人生 > >java.lang.NoClassDefFoundError: org/apache/log4j/Level錯誤 與log4j-over-slf4j

java.lang.NoClassDefFoundError: org/apache/log4j/Level錯誤 與log4j-over-slf4j

問題原因

缺少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。不指定具體的使用,減少引入