我有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>
但是在日志中我继续看到子包中的类的所有调试消息
答案 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>
此标记控制类
的级别消息