我正在为我的一个项目使用log4j,我知道可以为每个appender设置阈值。
我的目标是只将INFO消息记录到文件中,而只记录另一个文件中的ERROR消息。
对此使用阈值的问题是,如果我将一个appender阈值设置为INFO而另一个设置为ERROR,那么当我记录一条ERROR消息时,该消息会转到两个文件(appenders)。
我怎样才能做到这一点?
提前致谢
答案 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" />
感谢帮助人员