11

コンテキスト: JBoss Application Server 6

slf4j-jboss-logmanager.jarslf4jをJBossログマネージャーにバインドすることに依存しています。

すべてのlogger.info()出力は正しくログに記録されます

ただし、logger.debug()出力がログストリームに表示されることはありません。

jboss-logging.xmlがDEBUGCONSOLEロガーのレベルを設定していても...

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

デバッグの詳細がログストリームに到達しない理由を誰かが理解していますか?

4

1 に答える 1

12

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>
于 2010-08-05T21:44:11.080 に答える