log4j:errorFile的错误

时间:2011-06-14 12:03:59

标签: log4j

我有一个类我要记录的事件。比如,有两个级别:调试和错误。如何将错误记录到errorFile并将调试信息记录到debugFile?

因此我使用log4j.xml有一个过滤机制,但它似乎只适用于不在一个类内的不同类别。

请帮助新手。 =)

1 个答案:

答案 0 :(得分:3)

你必须像这样定义和使用两个具有不同阈值的appender:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!-- Error -->
    <appender name="ErrorFile"
         class="org.apache.log4j.RollingFileAppender">
        <param name="Threshold" value="error"/>
        <param name="file" value="log.err" />
        <param name="MaxFileSize" value="10MB" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d %C.%M (%L) - %m%n" />
        </layout>
    </appender>

    <appender name="LogFile"
         class="org.apache.log4j.RollingFileAppender">
        <param name="Threshold" value="debug"/>
        <param name="file" value="log.log" />
        <param name="MaxFileSize" value="10MB" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d %C.%M (%L) - %m%n" />
        </layout>
    </appender>

    <logger name="foo.bar" additivity="false">
        <level value="debug" />
        <appender-ref ref="LogFile" />
        <appender-ref ref="ErrorFile" />
    </logger>

    <root>
        <priority value="warn" />
        <appender-ref ref="ErrorFile"/>
    </root>

</log4j:configuration>

log4j FAQs也回答了这个问题。


刚刚找到LogToAppenderByLevel解决方案(here),这可能也对您有所帮助。