SLF4J logger.debug() does not get logged in JBoss 6
Context: JBoss Application Server 6
I am relying on slf4j-jboss-logmanager.jar
to bind slf4j to the JBoss log manager.
All logger.info()
output is correctly logged.
However, logger.debug()
output never appears in the log stream.
Even though jboss-logging.xml has set the level to DEBUG
for the CONSOLE logger...
<console-handler name="CONSOLE" autoflush="true" target="System.out">
...
<level name="DEBUG"/>
...
</cons开发者_StackOverflowole-handler>
Does anybody see why my debug details never reach the log stream?
As from JBoss 6, the log manager and jboss-logging.xml are proprietary.
The key is in the root-logger definition at the end of the config file:
The default defintion caps all output to whatever hander at INFO
level:
<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>
Changing this to
<root-logger>
<level name="${jboss.server.log.threshold:DEBUG}"/>
<handlers>
opens the gate for all possible DEBUG information.
Probably too much DEBUG information. Therefore, I had to add some additional filters:
<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>
精彩评论