java - SLF4J logger.debug() 未登录 JBoss 6

标签 java logging jboss slf4j

上下文:JBoss 应用服务器 6

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

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

但是,logger.debug() 输出从未出现在日志流中。

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

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

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

最佳答案

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

关键在配置文件末尾的根记录器定义中:

默认定义将所有输出限制在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>

关于java - SLF4J logger.debug() 未登录 JBoss 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3419394/

相关文章:

java - 生成 JSON 数组

java - 获取最近 12 小时记录的 hql 查询

java - Spring引导@Value为空

jboss - Wildfly 远程访问管理控制台不起作用

url-rewriting - 如何配置 Undertow 处理程序以支持正确重写 SPA 书签?

java - 从同一个类中的另一个方法调用 main 方法

c++ - boost 日志旋转文件 - 超出大小

c++ - 如果没有 C 标准库,有没有更好的方法来查找任意数字的日志?

java - log4j2 xml配置日志到2个文件

java - WSDL 中缺少信息(JAX-WS 运行时)