问题 SLF4J logger.debug()没有登录JBoss 6


语境: JBoss应用服务器6

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

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

然而, logger.debug() 产量 永远不会出现 在日志流中。

即使jboss-logging.xml已将级别设置为 DEBUG 对于CONSOLE记录器......

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

有人知道为什么我的调试细节永远不会到达日志流吗?


2102
2017-08-05 21:37


起源



答案:


从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>

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

可能是DEBUG信息过多。因此,我不得不添加一些额外的过滤器:

   <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>

12
2017-08-05 21:44



很高兴知道:对jboss-logging.xml的任何更改都会立即“热部署”。因此,可以随时更改任何包/类的日志级别 - 在a 赛跑 服务器(!) - Jan
如果您使用Eclipse中的JBOSS-Tools运行JBOSS,请注意这一点。我做了上面提到的所有内容,但我仍然没有看到调试语句。罪魁祸首是eclipse中的启动配置。这引用了[JBOSS-INSTALL] /bin/logging.properties文件,该文件将loglevel保持在INFO。 - Bjarne77


答案:


从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>

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

可能是DEBUG信息过多。因此,我不得不添加一些额外的过滤器:

   <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>

12
2017-08-05 21:44



很高兴知道:对jboss-logging.xml的任何更改都会立即“热部署”。因此,可以随时更改任何包/类的日志级别 - 在a 赛跑 服务器(!) - Jan
如果您使用Eclipse中的JBOSS-Tools运行JBOSS,请注意这一点。我做了上面提到的所有内容,但我仍然没有看到调试语句。罪魁祸首是eclipse中的启动配置。这引用了[JBOSS-INSTALL] /bin/logging.properties文件,该文件将loglevel保持在INFO。 - Bjarne77