jboss上的log4j-子包级别

jboss上的log4j-子包级别,log4j,Log4j,我有JBoss 6.1并使用JBoss logging.xml 我想为一个包和一个his子包设置不同的日志级别,例如: -com.foo.bar(调试中) -com.foo.bar.subpack.subsubpack(信息中) 我试过这样做: <logger category="com.foo.bar"> <level name="DEBUG"/> </logger> <logger category="com.foo.bar.subpack">

我有JBoss 6.1并使用JBoss logging.xml
我想为一个包和一个his子包设置不同的日志级别,例如:
-com.foo.bar(调试中)
-com.foo.bar.subpack.subsubpack(信息中)
我试过这样做:

<logger category="com.foo.bar">
 <level name="DEBUG"/>
</logger>
<logger category="com.foo.bar.subpack">
 <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>

编辑:

否则,请按要实例化记录器的位置检查名称

根据,如果您编写
Logger.getLogger(“PIPPO”)
,并且如果配置文件中不存在名为“PIPPO”的记录器,则默认情况下将实例化RootLogger

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


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

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



此标记控制类的级别消息

您的配置看起来正常。您是否尝试设置“com.foo.bar包的信息级别?可能您配置了错误的文件…?该文件是正确的,因为我已将控制台级别从“信息”更改为“调试”,现在我看到所有调试混乱。消息不是两次,而是一次,并且此解决方案(additivity=false)不要改变这种情况。检查代码时,我看到logger构造函数是logger=logger.getLogger(“PIPPO”);而不是通常的logger=logger.getLogger(this.getClass());这可能是个问题。好的,我正在为有同样错误的人编辑我的答案。
<logger category="PIPPO">
   <level name="INFO"/>
</logger>