Logging 配置log4j.properties以将错误输出到文件

Logging 配置log4j.properties以将错误输出到文件,logging,log4j,Logging,Log4j,我有多个java类,希望将调试和错误输出写入不同的日志文件以及不同的位置。如何使用log4j.properties实现这一点?您需要过滤消息。但是,过滤器只能通过XML配置文件log4j.XML使用 如果要为追加器指定下限和上限,请执行以下操作: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN"

我有多个java类,希望将调试和错误输出写入不同的日志文件以及不同的位置。如何使用log4j.properties实现这一点?

您需要过滤消息。但是,过滤器只能通过XML配置文件log4j.XML使用

如果要为追加器指定下限和上限,请执行以下操作:

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

    <!-- DEBUG appender -->
    <appender name="DEBUGFILE" class="org.apache.log4j.FileAppender">
        <param name="file" value="debug.log" />
        <layout class="org.apache.log4j.SimpleLayout" />
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="DEBUG" />
        </filter>
    </appender>

    <!-- ERROR appender -->
    <appender name="ERRORFILE" class="org.apache.log4j.FileAppender">
        <param name="file" value="error.log" />
        <layout class="org.apache.log4j.SimpleLayout" />
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="ERROR" />
            <param name="LevelMax" value="ERROR" />
        </filter>
    </appender>

    <!-- root -->
    <root>
        <priority value="ALL" />
        <appender-ref ref="DEBUGFILE" />
        <appender-ref ref="ERRORFILE" />
    </root>

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

    <!-- DEBUG appender -->
    <appender name="DEBUGFILE" class="org.apache.log4j.FileAppender">
        <param name="file" value="debug.log" />
        <layout class="org.apache.log4j.SimpleLayout" />
        <filter class="org.apache.log4j.varia.LevelMatchFilter">
            <param name="levelToMatch" value="DEBUG" />
        </filter>
    </appender>

    <!-- ERROR appender -->
    <appender name="ERRORFILE" class="org.apache.log4j.FileAppender">
        <param name="file" value="error.log" />
        <layout class="org.apache.log4j.SimpleLayout" />
        <filter class="org.apache.log4j.varia.LevelMatchFilter">
            <param name="levelToMatch" value="ERROR" />
        </filter>
    </appender>

    <!-- root -->
    <root>
        <priority value="ALL" />
        <appender-ref ref="DEBUGFILE" />
        <appender-ref ref="ERRORFILE" />
    </root>

</log4j:configuration>