2010-08-05 61 views
11

語境: JBoss應用服務器6SLF4J logger.debug()不得到記錄在JBoss中6

我靠slf4j-jboss-logmanager.jar綁定SLF4J到JBoss日誌管理器。

全部logger.info()輸出爲正確登錄

但是,logger.debug()輸出在日誌流中從未出現

即使的jboss-logging.xml已經級別設置爲DEBUG控制檯日誌記錄器...

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

有誰知道爲什麼我的調試細節從未達到日誌流?

回答

12

從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> 
+1

重要提示:任何對jboss-logging.xml的更改都是立即「熱部署」。因此,可以隨時更改任何程序包/類的日誌級別 - 在* running *服務器(!) – Jan 2010-08-05 21:46:07

+0

如果您使用Eclipse中的JBOSS-Tools運行JBOSS,請注意這一點。我做了上面提到的所有東西,但我仍然沒有看到調試語句。罪魁禍首是eclipse中的啓動配置。這引用了保持INFO的日誌級別的[JBOSS-INSTALL] /bin/logging.properties文件。 – Bjarne77 2014-04-03 14:02:28