禁用级别日志log4j

时间:2018-11-05 13:20:06

标签: java log4j

我将errorAppender和infoAppender分为2个日志文件。

可以,但是我只需要登录信息文件即可。

示例: 当我调用logger.error(“ TEST ERROR”)时,我不希望此信息显示在信息文件中。

有什么方法可以禁用级别日志?

log4j.xml

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

    <appender name="errorAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/log/error.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p] %d %c %M - %m%n" />
        </layout>
        <param name="Threshold" value="ERROR" />
    </appender>
    <appender name="infoAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/log/success.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p] %d %c %M - %m%n" />
        </layout>
        <param name="Threshold" value="INFO" />
    </appender>

    <root>
        <appender-ref ref="errorAppender" />
        <appender-ref ref="infoAppender" />
    </root>
</log4j:configuration>

1 个答案:

答案 0 :(得分:0)

感谢@Fildor,现在可以使用LevelRangeFilter正常工作

<appender name="infoAppender" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="/log/success.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="[%p] %d %c %M - %m%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
        <param name="AcceptOnMatch" value="true" />
    </filter>
    <param name="Threshold" value="INFO" />
</appender>