2012-09-17 92 views
1

我使用log4j的在我的广告应用程式记录。我正在尝试在不同文件中记录不同级别的日志,但出错了。任何帮助重新调整这个问题将不胜感激。日志不同的日志级别不同的文件与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> 
+2

什么不顺心? – oers

+0

欢迎来到SO。如果我们不知道什么行为是不可取的,那很难提供帮助。 –

+0

感谢JohnB和oers。问题是我试图过滤我的信息。我想在retailer_error.log中记录错误消息,在零售商信息记录中记录错误消息,其他类似。 – seeker

回答

5

的log4j的追加程序的标准行为是,他们将所有消息记录在自己的阈值水平或更高,即具有阈值的INFO一个appender将登录INFO,WARN,ERROR和FATAL消息,但不能进行调试。如果你想记录 INFO的消息但不WARN及以上然后you need to use a LevelMatchFilter

您还需要设置你的根记录优先DEBUG,否则只会发送错误和FATAL消息给它附加目的地和您的DEBUG和INFO文件将是空的。

+4

下面是一个例子配置文件的链接:http://wiki.apache.org/logging-log4j/LogToAppenderByLevel – dertoni

+0

thansk @dertoni您提供的链接也帮助我:) – seeker

相关问题