jboss上的log4j - 子包级别

时间:2017-01-26 10:51:57

标签: log4j

我有JBoss 6.1并使用jboss-logging.xml
我想为一个包和一个他的子包设置不同的日志级别,例如:
- com.foo.bar(在DEBUG中)
- com.foo.bar.subpack.subsubpack(在INFO中)
我试过这个:

<logger category="com.foo.bar">
 <level name="DEBUG"/>
</logger>
<logger category="com.foo.bar.subpack">
 <level name="INFO"/>
</logger>

但是在日志中我继续看到子包中的类的所有调试消息

2 个答案:

答案 0 :(得分:0)

我猜这些消息是由记录器重复两次。禁用可加性:

<logger category="com.foo.bar" additivity="false">
 <level name="DEBUG"/>
</logger>
<logger category="com.foo.bar.subpack">
 <level name="INFO"/>
</logger>

编辑:

否则,请检查您正在设置记录器的名称。

根据https://logging.apache.org/log4j/1.2/manual.html#Logger_hierarchy,如果您编写Logger.getLogger("PIPPO"),并且配置文件中不存在名称为“PIPPO”的记录器,则默认情况下将实例化RootLogger 。

  

如果记录器的名称后跟一个点是后代记录器名称的前缀,则称该记录器是另一个记录器的祖先。如果记录器本身和后代记录器之间没有祖先,则称记录器是子记录器的父节点。

要应用您的配置,您必须通过使用名称“com.foo.bar.subpack.YourClass”调用它来实例化记录器。

答案 1 :(得分:0)

我发现问题:使用构造函数Logger.getLogger(&#34; PIPPO&#34;),在xml中,类别是&#34; PIPPO&#34;:

<logger category="PIPPO">
   <level name="INFO"/>
</logger>

此标记控制类

的级别消息