2010-08-05 12 views
11

Contexto: JBoss Application Server 6logger.debug SLF4J() no quede conectado JBoss 6

Confío en slf4j-jboss-logmanager.jar de obligar slf4j al gestor de registro de JBoss.

Todo logger.info() salida es correctamente registrado.

Sin embargo, logger.debug() salida nunca aparece en la secuencia de registro.

Aunque jboss- logging.xml ha establecido el nivel de DEBUG para el registrador de la consola ...

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

¿Alguien ver qué más detalles de depuración nunca alcanzan la secuencia de registro?

Respuesta

12

A partir de JBoss 6, el administrador de registro y jboss-logging.xml son propietarios.

La clave está en la definición de raíz-logger al final del fichero de configuración:

El Defintion predeterminado tapas toda la salida a cualquier lanzador en INFO nivel:

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

El cambio de este a

<root-logger> 
     <level name="${jboss.server.log.threshold:DEBUG}"/> 
     <handlers> 

abre la puerta para toda la información de DEPURACIÓN posible.

Probablemente demasiada información de DEPURACIÓN. Por lo tanto, tuve que agregar algunos filtros adicionales:

<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

Es bueno saber: Cualquier cambio en jboss-logging.xml se 'implementa en caliente' inmediatamente. Por lo tanto, es posible cambiar el nivel de registro de cualquier paquete/clase en cualquier momento: en un servidor * running * (!) – Jan

+0

Una nota al margen si está ejecutando JBOSS con JBOSS-Tools de Eclipse. Hice todas las cosas mencionadas anteriormente, pero todavía no vi las declaraciones de depuración. El culpable fue la configuración de lanzamiento dentro de Eclipse. Esto hacía referencia al archivo [JBOSS-INSTALL] /bin/logging.properties que mantenía el nivel de registro en INFO. – Bjarne77