我很疑惑为什么INFO语句会使它进入控制台。下面是一般设置:帮我理解log4j appender相对于优先级的可加性
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<param name="Threshold" value="DEBUG"/>
<layout .../>
</appender>
<appender name="REST_LOG" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/logs/rest.log" />
<param name="Threshold" value="INFO" />
....
</appender>
<category name="xyz.web">
<priority value="WARN" />
<appender-ref ref="CONSOLE" />
</category>
<category name="xyz.web.rest">
<priority value="INFO" />
<appender-ref ref="REST_LOG" />
</category>
所以我想INFO和上述声明仅做REST_LOG并警告语句和上面去REST_LOG和控制台。我所看到的是来自xyz.web.rest的INFO语句在REST_LOG中的预期,但也看到了来自CONSOLE中xyz.web.rest的INFO语句,这是我没有想到的。
有人可以解释发生了什么吗?
我可以知道如何将特定appender的加号标志设置为false?例如,我有一个针对错误的appender,另一个针对WARN的appender。我不想看到ERROR日志文件中包含的WARN内容。我希望WARN日志只出现在WARN日志文件中,但不出现在ERROR日志文件中。我可以知道这可以做到吗? – huahsin68 2013-08-13 03:11:29