天天看點

Maven中 SLF4J: Class path contains multiple SLF4J bindings. 的解決方法

問題:

Maven中 SLF4J: Class path contains multiple SLF4J bindings. 的解決方法
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/Maven/MavenRepository/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/Maven/MavenRepository/org/slf4j/slf4j-log4j12/1.7.10/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/Maven/MavenRepository/org/apache/logging/log4j/log4j-slf4j-impl/2.12.1/log4j-slf4j-impl-2.12.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
           

即slf4j-jdk14、slf4j-log4j12、log4j-slf4j-impl之間存在日志沖突。

解決辦法:

找了很多部落格,一直沒有解決清楚,主要原因還是因為沒有弄清楚這幾個jar包之間的關系,最終在這篇部落格https://www.cnblogs.com/hanszhao/p/9754419.html中知道了。

我的項目中是采用SLF4J與JDK合用,需要:slfj-jdk.jar和slf4j-api.jar,其他的都不需要,在maven的依賴中删除不需要的jar包就可以了。

具體操作如下: 

(我有試過在終端中輸入 mvn dependency:tree  ,可能是沒有自己手動删除幹淨,最終還是沒有解決,是以還是推薦以下做法)

在maven視窗中打開這個,

Maven中 SLF4J: Class path contains multiple SLF4J bindings. 的解決方法

然後快捷鍵 “ctrl+F” ,再直接輸入需要查找的jar包,

Maven中 SLF4J: Class path contains multiple SLF4J bindings. 的解決方法

找到後,右鍵選擇 “Exclude” 或者快捷鍵 “shift+delete”,删除該jar包即可,我删除了slf4j-log4j12和log4j-slf4j-impl

Maven中 SLF4J: Class path contains multiple SLF4J bindings. 的解決方法