Контекст: сервер приложений 6 JBoss
Я полагаюсь 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>
Кто-либо видит, почему мои детали отладки никогда не достигают потока журнала?
Начиная с 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>