使记录器显示级别INFO..logging的日志消息是包级别的

时间:2013-10-31 06:20:16

标签: java log4j

经过大量搜索后,我终于知道我们只能使用log4j.xml文件中的LevelMatchFilter来记录特定级别的消息(例如,在我的情况下只有INFO消息)...

这是代码..

<filter type="org.apache.log4j.varia.LevelMatchFilter">
  <acceptOnMatch value="true" />
  <levelToMatch  value="INFO" />
</filter>
<filter type="org.apache.log4j.varia.DenyAllFilter" />

我的情况是我有一些像..

这样的软件包
1)com.test.servlet
2)com.test.service
3)com.test.filter
4)com.test.model

现在我的要求是......

1) servlet package should print loggers from DEBUG level and above.
2) service package should print loggers from ERROR level and above.
3) rest of the package should print only INFO log messages.

我获得了第3点的代码,但我对如何将其应用于特定包装一无所知。

有人指导实现这一目标。

由于

1 个答案:

答案 0 :(得分:0)

log4j.xml中添加以下内容并检查。

<logger name="com.test.servlet" additivity="false">
  <level value="debug"/> 
</logger>
<logger name="com.test.service" additivity="false">
  <level value="error"/> 
</logger>
<logger name="com.test.filter" additivity="false">
  <level value="info"/> 
</logger>
<logger name="com.test.model" additivity="false">
  <level value="info"/> 
</logger>

有关详细信息,请参阅Log4jXmlFormat