JBoss 上的 log4j - 子包级别



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

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

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

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

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

此标记控制类的级别消息

我想记录器会读取两次消息。禁用可加性:

<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"的名称来实例化记录器。

最新更新