1. 程式人生 > >為什麼slf4j+log4j能列印日誌到控制檯,但是不能列印到指定檔案

為什麼slf4j+log4j能列印日誌到控制檯,但是不能列印到指定檔案

slf4j提供一個介面,它可以有很多具體實現,如common-logging,log4j,logback等等,如果專案依賴的jar包很多,這時就要排除掉多餘的jar包,只能指定一個具體的實現

比如專案中依賴milo這個包

<dependency>
            <groupId>org.eclipse.milo</groupId>
            <artifactId>client-examples</artifactId>
            <version>0.1.0-SNAPSHOT</version>
        </dependency>

但是milo中的日誌是用logback實現的,而我的專案是用log4j實現的,這時候執行專案,發現控制檯提示

Class path contains multiple SLF4J bindings.

但是日誌資訊能正常輸出到控制檯,唯獨日誌檔案沒有任何資訊

解決辦法就是,將logback排除依賴

<dependency>
            <groupId>org.eclipse.milo</groupId>
            <artifactId>client-examples</artifactId>
            <version>0.1.0-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

這樣日誌檔案就能正常輸出了