2012-03-03 14 views
8

He instalado Tomcat y el uso de SLF4J como nuestro marco de trabajo de registro. Copié slf4j-api-1.6.4.jar y slf4j-jdk14-1.6.4.jar en la biblioteca de Tomcat, es decir, $TOMCAT_HOME/lib.SL4JF en Tomcat no aparece en los archivos de registro

Supuse que si uso SLF4J, delegará en java.util.Logger, que se delegará en el marco de registro de Tomcat subyacente. Pero cuando despliegue y verifique mi aplicación, no veo nada que se registre. Toda mi información de excepción/registro se está perdiendo.

¿Lo entiendo bien, o me perdí algo para mantenerme en el camino de la clase?

+0

Su configuración me parece correcta, agregue su archivo de configuración JUL (logging.properties). – foch

+0

Puede ver https://github.com/grgrzybek/tomcat-slf4j-logback para un proyecto que reemplace Tomcat JULI con SLF4J + Logback puro que no entre en conflicto con la configuración de registro WAR individual –

+0

foch; utilizo el registro predeterminado. propiedades que se envían con la instalación del servidor. Grzegorz Grzybek, gracias por el enlace. pero quiero saber por qué defalt no funciona. esto significa que SL4J no es útil si estamos usando tomcat? –

Respuesta

2

En lugar de copiar el slf4j-api-1.6.4.jar y el slf4j-jdk14-1.6.4.jar en $ TOMCAT/lib, envié estos archivos jar a la aplicación war. en este caso, mis excepciones se están registrando.

+0

¿Qué archivo de configuración fue recogido cuando envía estos contenedores con la aplicación war? Esto es totalmente diferente de lo que preguntaste inicialmente. –

+1

@Surya, muchas muchas gracias por la pregunta y la respuesta. Recientemente, comencé a usar TomEE 1.5.1 (tomcat 7.0.32+), y estaba tratando de obtener mis excepciones y registros en el archivo de registro de catalina mientras ejecutaba TomEE como servicio de Windows (a través del servicio de windows tomcat7), y busqué y busqué este tema por horas, y esta respuesta finalmente me ayudó. ¡Muchas gracias! – Howard

1

Probablemente lo que necesita es agregar la propiedad del sistema a su CATALINA_OPTS.

los sistemas Windows, añadir a su CATALINA_HOME bin archivo \ \ catalina.bat%:

set CATALINA_OPTS=-Djava.util.logging.config.file=\PATH\TO\YOUR\logging.properties 

o en sistemas Linux/UNIX, añadir a su archivo $ CATALINA_HOME/bin/catalina.sh:

CATALINA_OPTS=-Djava.util.logging.config.file=/PATH/TO/YOUR/logging.properties 

No olvide que en sistemas Linux/UNIX, debe indicar si tiene más de un parámetro en CATALINA_OPTS, por ejemplo

CATALINA_OPTS="-Xmx256m -Djava.util.logging.config.file=/PATH/TO/YOUR/logging.properties" 

Esta línea es para asegurarse de que su archivo logging.properties se carga cuando se inicia Tomcat.

+0

Puedo ver el archivo de registro lleno cuando se lanza una excepción desde mi aplicación. pero cuando intento iniciar sesión explícitamente, falla. también cuando revisé el archivo catalina.sh, puedo ver que logging.properties se está configurando en el archivo de propiedades correcto –

1

Puede configurar Tomcat para usar log4j como se describe in its docs, poner log4j.properties en el directorio $ CATALINA_HOME/lib y usar slf4j-api con el puente slf4j-log4j12. De modo que tiene slf4j API y log4j bondad como DailyRollingFileAppender, etc.

+0

la pregunta es sobre "java.util.Logger" - el registro predeterminado para tomcat y no sobre log4j. – dermoritz

Cuestiones relacionadas