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