1. 程式人生 > >SLF4J: Class path contains multiple SLF4J bindings.問題解決方案

SLF4J: Class path contains multiple SLF4J bindings.問題解決方案

錯誤提示

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: See

http://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>