SLF4J: Class path contains multiple SLF4J bindings.問題解決方案
阿新 • • 發佈:2019-01-31
錯誤提示
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found
binding in
[jar:file:/Users/ulricqin/Documents/workspace/uic/web/WEB-INF/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/Users/ulricqin/Documents/workspace/uic/web/WEB-INF/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Seehttp://www.slf4j.org/codes.html#multiple_bindings for an
explanation.
問題原因
jar包衝突了,slf4j就是所謂的門面模式,提供了一個介面,自己不去實現,讓其他日誌jar包去實現這個介面。logback、log4j什麼的,都有實現這個介面,但執行的時候,必須保證只能有一個介面實現類,如果有兩個或以上,就拋上面那個異常了。做下依賴排除就行了,有的時候是其他包裡面引進了日誌包,不是你自己引進的
如何解決
鑑於大多數模組,都有實現這個介面,那麼要做的就是,保證只有一個實現就可以了。其他的排除掉就可以了,對於maven,只需要在依賴中加入exclusions就可以了
更新排除程式碼配置
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId >
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
</exclusion>