Log4J和slf4j的debug日誌問題

很多人知道,在使用slf4j的過程中通常會引入兩個jar包,大概如下:

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.21</version>
</dependency>

當使用最終的日誌實現,如Log4j時,又會引入log4j相關的jar包,如下:

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>

這樣就可以在Java應用程序(Java Web服務和Java程序)中,輸出由slf4j編寫的日誌。

但在使用過程中發現,在執行測試用例(加載Spring或未加載Spring)的時候,不管怎麼配置log4j.properties文件,都會出現部分debug日誌輸出不了的情況,具體就是自己寫的那部分的debug日誌不會輸出,而如Spring或MyBatis等框架的debug日誌就可以輸出。

後面根據slf4j的警告日誌,說是有多個日誌實現,從而不確定具體選哪一個具體日誌實現。經過進一步的調試,刪除slf4j-simple的依賴後,所有的debug日誌都可以如期的輸出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章