我有这个log4j.xml文件,它应该只从INFO级别记录但我也得到了警告级别也在我的日志。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender class="org.apache.log4j.RollingFileAppender" name="FILE">
<param value="D:\RAM\tst.log" name="File" />
<param value="10" name="MaxBackupIndex" />
<param value="200MB" name="MaxFileSize" />
<layout class="org.apache.log4j.PatternLayout">
<param value="%d[%t] %-5p(%F:<%M>:%L)- %m%n" name="ConversionPattern" />
</layout>
</appender>
<appender class="com.Log4JCustomAppender" name="CUSTAPPEN">
<layout class="org.apache.log4j.PatternLayout">
<param value="%d[%t] %-5p(%F:<%M>:%L)- %m%n" name="ConversionPattern" />
</layout>
</appender>
<appender class="org.apache.log4j.AsyncAppender" name="ASYNC">
<param name="Blocking" value="false"/>
<param name="BufferSize" value="1000"/>
<appender-ref ref="CUSTAPPEN" />
</appender>
<root>
<level value="INFO" />
<appender-ref ref="FILE" />
<appender-ref ref="ASYNC" />
</root>
</log4j:configuration>
这是我在自定义Appender和RollingFileAppender 中得到的输出
LOgged One is 2013-06-23 01:05:55,954[main] FATAL(Hi.java:<main>:14)- This is a fatal Message
LOgged One is 2013-06-23 01:05:55,965[main] WARN (Hi.java:<main>:15)- This is a warn Message
请告诉我如何避免这种情况。
这种行为是正常的。将记录器设置为特定的级别值表示您希望该级别与所有高于该级别的级别AND。
级别为:
- 踪迹
- 调试
- 信息
- 警告
- 错误
- 致命的
- 关闭
如果你只想要INFO
级别,你必须在你的appenders上使用过滤器:
<filter type="org.apache.log4j.varia.LevelMatchFilter">
<acceptOnMatch value="true" />
<levelToMatch value="INFO" />
</filter>
<filter type="org.apache.log4j.varia.DenyAllFilter" />