Log4J特定文件的特定级别 - appender

时间:2012-01-03 17:14:35

标签: java logging log4j

我正在为我的一个项目使用log4j,我知道可以为每个appender设置阈值。

我的目标是只将INFO消息记录到文件中,而只记录另一个文件中的ERROR消息。

对此使用阈值的问题是,如果我将一个appender阈值设置为INFO而另一个设置为ERROR,那么当我记录一条ERROR消息时,该消息会转到两个文件(appenders)。

我怎样才能做到这一点?

提前致谢

2 个答案:

答案 0 :(得分:2)

您需要使用org.apache.log4j.varia.LevelMatchFilter

<filter class="org.apache.log4j.varia.LevelMatchFilter">
            <param name="LevelToMatch" value="ERROR" />
            <param name="AcceptOnMatch" value="true" />
        </filter>

答案 1 :(得分:0)

感谢回复人员,

我做错了是我试图在属性文件上定义过滤器。由于使用它仅支持XML配置文件,因此我已更改为XML文件。

为了得到我需要的东西,我还必须添加一个DenyAllFilter过滤器类型:

        <filter class="org.apache.log4j.varia.LevelMatchFilter"> 
            <param name="LevelToMatch" value="INFO" /> 
            <param name="AcceptOnMatch" value="true" />                        
        </filter>
        <filter class="org.apache.log4j.varia.DenyAllFilter" />

感谢帮助人员