SLF4J logger.debug()未在JBoss 6中记录


问题内容

上下文: JBoss Application Server 6

我依靠slf4j-jboss-logmanager.jar将slf4j绑定到JBoss日志管理器。

所有logger.info()输出均已 正确记录

但是,logger.debug()输出 永远不会出现 在日志流中。

即使jboss-logging.xml已将DEBUGCONSOLE记录器的级别设置为…

   <console-handler name="CONSOLE" autoflush="true" target="System.out">
      ...
      <level name="DEBUG"/>
      ...
   </console-handler>

有人看到为什么我的调试详细信息从未到达日志流吗?


问题答案:

从JBoss 6开始,日志管理器和jboss-logging.xml是专有的。

密钥位于配置文件末尾的root-logger定义中:

默认帽确定指标 全部输出到任何投手INFO水平:

   <root-logger>
      <level name="${jboss.server.log.threshold:INFO}"/>
      <handlers>
         <handler-ref name="CONSOLE"/>
         <handler-ref name="ERROR"/>
         <handler-ref name="FILE"/>
      </handlers>
   </root-logger>

更改为

   <root-logger>
      <level name="${jboss.server.log.threshold:DEBUG}"/>
      <handlers>

打开所有可能的调试信息的大门。

可能是太多的调试信息。因此,我必须添加一些其他过滤器:

   <logger category="org.jboss">
      <level name="INFO"/>
   </logger>

   <logger category="org.hibernate">
      <level name="INFO"/>
   </logger>

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

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

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

   <logger category="my.package">
      <level name="DEBUG"/>
   </logger>