為什麼slf4j+log4j能列印日誌到控制檯,但是不能列印到指定檔案
阿新 • • 發佈:2019-01-01
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>
這樣日誌檔案就能正常輸出了