问题描述
我正在使用log4j在我的应用中记录.我正在尝试在不同的文件中进行不同的级别日志,但出了问题.重新加入此问题的任何帮助将不胜感激.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> </appender> <appender name="DEBUG" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TCS_patch_9/log/retailer_debug.log" /> <param name="Threshold" value="DEBUG" /> <param name="MaxFileSize" value="2MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> </layout> </appender> <appender name="INFO" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TCS_patch_9/log/retailer_info.log" /> <param name="Threshold" value="INFO" /> <param name="MaxFileSize" value="2MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> </layout> </appender> <appender name="ERROR" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TCS_patch_9/log/retailer_error.log" /> <param name="Threshold" value="ERROR" /> <param name="MaxFileSize" value="2MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> </layout> </appender> <appender name="FATAL" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TCS_patch_9/log/retailer_repeat_delay.log" /> <param name="Threshold" value="FATAL" /> <param name="MaxFileSize" value="2MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> </layout> </appender> <root> <priority value ="error" /> <appender-ref ref="console"/> <appender-ref ref="DEBUG"/> <appender-ref ref="INFO"/> <appender-ref ref="ERROR"/> <appender-ref ref="FATAL"/> </root> </log4j:configuration>
推荐答案
log4j附录的标准行为是他们在阈值级别或更高> 中记录所有消息,即具有阈值信息的附录信息将记录信息,警告,错误和致命消息,但不会调试.如果您要登录仅 信息消息,但不警告,则您需要使用LevelMatchFilter .
您还需要将root Logger优先级设置为调试,否则它将仅向其附录发送错误和致命消息,而您的调试和信息文件将为空.
问题描述
I am using log4j for logging in my applicaion. I am trying to different level logs in different files but something going wrong. Any help regrading this issue will be highly appreciated.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> </appender> <appender name="DEBUG" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TCS_patch_9/log/retailer_debug.log" /> <param name="Threshold" value="DEBUG" /> <param name="MaxFileSize" value="2MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> </layout> </appender> <appender name="INFO" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TCS_patch_9/log/retailer_info.log" /> <param name="Threshold" value="INFO" /> <param name="MaxFileSize" value="2MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> </layout> </appender> <appender name="ERROR" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TCS_patch_9/log/retailer_error.log" /> <param name="Threshold" value="ERROR" /> <param name="MaxFileSize" value="2MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> </layout> </appender> <appender name="FATAL" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TCS_patch_9/log/retailer_repeat_delay.log" /> <param name="Threshold" value="FATAL" /> <param name="MaxFileSize" value="2MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> </layout> </appender> <root> <priority value ="error" /> <appender-ref ref="console"/> <appender-ref ref="DEBUG"/> <appender-ref ref="INFO"/> <appender-ref ref="ERROR"/> <appender-ref ref="FATAL"/> </root> </log4j:configuration>
推荐答案
The standard behaviour for log4j appenders is that they log all messages at their threshold level or higher, i.e. an appender with threshold INFO will log INFO, WARN, ERROR and FATAL messages but not DEBUG. If you want to log only INFO messages but not WARN and above then you need to use a LevelMatchFilter.
You will also need to set your root logger priority to DEBUG, otherwise it will only send ERROR and FATAL messages to its appenders and your DEBUG and INFO files will be empty.