使用log4j2關閉debug日志
log4j2關閉debug日志
最近項目引進入一個jar包,啟動之之後debug日志就停不下來瞭,為瞭關閉這個日志花瞭半個下午。總結以下處理方式,以供大傢參考:
1.如果引入瞭logback的jar包
排除引用(我的項目裡沒有引用)
<exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </exclusion> </exclusions>
2.調整log4j2的日志打印級別
log4j2.xml(對於我的項目沒有起作用)
<configuration status="info" monitorInterval="600" >
3.指定加載文件web.xml
添加指定日志文件 (我的項目無效)
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/classes/log4j2.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
4.添加log4j.properties
對於我的項目有效
log4j.rootLogger=info,stdout
備註:因為我的項目裡由於第三方jar包引入瞭slf4j-log4j12和log4j2沖突,所以exclude掉slf4j-log4j12 jar包就是可以的
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日志都可以如期的輸出。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- mybatis-plus無法通過logback-spring輸出的解決方法
- log4j配置失效日志中打印Debug信息問題
- springboot log4j2不能打印框架錯誤日志的解決方案
- 教你使用idea搭建ssm詳細教程(Spring+Spring Mvc+Mybatis)
- Springboot如何使用logback實現多環境配置?