log4j配置失效日志中打印Debug信息問題

log4j配置失效日志中打印Debug信息

最近發佈項目的時候發現控制臺打印的日志較往常多瞭很多,仔細一看,debug和info信息也赫然在列,打開log4j.xml配置文件看一下:

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %t %5p %c{2}: %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">  
		    <param name="LevelMax" value="ERROR" />
		    <param name="LevelMin" value="INFO" />  
		</filter>
	</appender>
    
	<appender name="catAppender" class="com.dianping.cat.log4j.CatAppender">
        <param name="Threshold" value="ERROR"></param>
    </appender>
	<root> 
		<priority value="error" />
		<!-- 日志輸出最低級別  -->
		<appender-ref ref="CONSOLE" />
		<appender-ref ref="catAppender" /> 
	</root> 
</log4j:configuration>

配置的是error級別,顯然不應該出現debug信息的,一定是配置文件沒起作用,什麼原因呢?

查資料找到一種解釋:Log4j和logback沖突瞭,這樣會導致Log4j的日志級別降低到DEBUG級別。

項目用的是log4j,沒用到logback,難道是依賴隱式地加入瞭logback?打開依賴看下,還真的有logback:

知道瞭原因,就在maven依賴中把logback去掉。

去除依賴的方法

1. 調到引入logback的依賴處,如圖,右鍵->Jump To Source

2. 排掉logback依賴

<dependency>
<groupId>com.weimob.saas.foundation</groupId>
<artifactId>wxbase-core-service-client</artifactId>
<version>1.3.2-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
</exclusions>
</dependency>

log4j日志的配置–Debug

############################### 日志記錄器定義 ###############################
# 日志輸出級別 OFF、DEBUG、INFO、WARN、ERROR
log4j.rootLogger = DEBUG,consoleAppender,debug,info,warn,error

############################### 日志輸出控制器定義 ###############################
#根記錄器 控制臺輸出控制器
log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.Target = System.out
log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

#根記錄器 文件輸出控制器 DEBUG
log4j.logger.debug=debug
log4j.appender.debug = org.apache.log4j.RollingFileAppender
log4j.appender.debug.encoding=UTF-8
log4j.appender.debug.File =E:\\tomcat-8.5.16-x86\\mylog\\debug.log
log4j.appender.debug.Append = true
log4j.appender.debug.Threshold = DEBUG
log4j.appender.debug.MaxFileSize=900KB
log4j.appender.debug.MaxBackupIndex=1
log4j.appender.debug.layout = org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

#根記錄器 文件輸出控制器 INFO
log4j.logger.info=info
log4j.appender.info = org.apache.log4j.RollingFileAppender
log4j.appender.info.encoding=UTF-8
log4j.appender.info.File =E:\\tomcat-8.5.16-x86\\mylog\\info.log
log4j.appender.info.Append = true
log4j.appender.info.Threshold = INFO
log4j.appender.info.MaxFileSize=900KB
log4j.appender.info.MaxBackupIndex=1
log4j.appender.info.layout = org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

#根記錄器 文件輸出控制器 WARN
log4j.logger.warn=warn
log4j.appender.warn = org.apache.log4j.RollingFileAppender
log4j.appender.warn.encoding=UTF-8
log4j.appender.warn.File =E:\\tomcat-8.5.16-x86\\mylog\\warn.log
log4j.appender.warn.Append = true
log4j.appender.warn.Threshold = WARN
log4j.appender.warn.MaxFileSize=900KB
log4j.appender.warn.MaxBackupIndex=1
log4j.appender.warn.layout = org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

#根記錄器 文件輸出控制器 ERROR
log4j.logger.error=error
log4j.appender.error = org.apache.log4j.RollingFileAppender
log4j.appender.error.encoding=UTF-8
log4j.appender.error.File =E:\\tomcat-8.5.16-x86\\mylog\\error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.MaxFileSize=900KB
log4j.appender.error.MaxBackupIndex=1
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: