SLF4J logger.debug () не регистрируется в JBoss 6 - PullRequest
11 голосов
/ 06 августа 2010

Контекст: Сервер приложений JBoss 6

Я полагаюсь на slf4j-jboss-logmanager.jar для привязки slf4j к диспетчеру журналов JBoss.

Все logger.info() выходные данные правильно зарегистрирован .

Однако, logger.debug() вывод никогда не появляется в потоке журнала.

Даже если jboss-logging.xml установил уровеньна DEBUG для регистратора CONSOLE ...

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

Кто-нибудь видит, почему мои отладочные данные никогда не достигают потока журнала?

1 Ответ

12 голосов
/ 06 августа 2010

Начиная с 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>

открывает ворота для всей возможной информации отладки.

Возможно, слишком много информации отладки. Поэтому мне пришлось добавить несколько дополнительных фильтров:

   <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>
...