2010-07-05 19 views
7

estoy usando log4j en mi aplicación java, pero después de algún tiempo sin lanzar ninguna excepción se detuvo registrandolog4j detuvo el registro en el archivo,

mi configuración de log4j es la siguiente.

log4j.rootLogger=INFO,FILE 
log4j.appender.FILE=com.test.TestFIleAppender 
log4j.appender.FILE.MaxFileSize=20MB 
log4j.appender.FILE.MaxBackUpIndex=200 

Mi appender archivo contiene algo de código para hacer la operación de cremallera y para especificar el formato de archivo de registro y todo.

Esto fue registrando bien durante algún tiempo, pero de repente se detuvo el registro, no es una excepción lanzada también

cualquier organismo puede decirme lo que puede ser el problema?

cualquier cuerpo sabe cualquier problema relacionado con log4j como este?

+0

¿Hay una pregunta aquí? –

+0

¿Estás seguro de que es 'TestFIleAppender' con letra mayúscula I? Además, ¿trataste de imprimir un mensaje de prueba en el nivel INFO? –

+0

sí, los rastros de nivel de información vienen bien – sreejith

Respuesta

1

Es difícil de responder, por qué su registro se está deteniendo.

Primero, verifique el espacio en el disco duro, si está lleno.

Luego escriba un caso de prueba en el que un hilo esté sondeando un mensaje de registro de tipo INFO cada segundo. De lo que podría comprobar si esto es un problema de espacio o memoria.

Tenga en cuenta: Cuando el programa está esperando en alguna parte y no hay ningún hilo o acción funcionando, no verá ningún mensaje de acceso. Compruebe, mediante la depuración, si una línea de código se ejecuta en un bucle (o como esperaba ver los mensajes) en la que debe mostrarse un mensaje de registro.

Este es un ejemplo de mi archivo de propiedades log4j. Puede ser útil que es, es:

log4j.rootLogger=INFO, stdout, logfile 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %p (%t) [%c] - %m%n 

log4j.appender.logfile=org.apache.log4j.RollingFileAppender 
log4j.appender.logfile.File=C:/log/client.log 
log4j.appender.logfile.MaxFileSize=5MB 
log4j.appender.logfile.MaxBackupIndex=0 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n 
+0

espacio en disco real y mi aplicación está bien, básicamente mi aplicación es servidor, puede procesar solicitudes y todo ... pero no traza el rastreo – sreejith

+0

mi archivo log4j también es similar ... usted sabe cualquier problemas conocidos en log4j como este – sreejith

+0

¿Es su razón, por qué está utilizando su propio FileAppender? –

0

¿Ha considerado la posibilidad de que log4j sigue escribiendo en un archivo, pero ese archivo se ha desvinculado de su directorio padre por su appender personalizada?

4

Esto me pasó a mí. Trabajando un día y luego no trabajando el siguiente. Volví y me di cuenta de que había cambiado las dependencias de POM y busqué en Google.

Cuando corregí este problema, mi registro volvió. Me gustaría asegurarse de que tiene los siguientes artefactos en sincronía:

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.7.1</version> 
    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 

http://www.slf4j.org/manual.html

0

Me ocurrió después de añadir la sardina biblioteca a mis dependencias. Entonces, de una de las respuestas aquí agregué slf4j-log4j12 biblioteca a las dependencias y comenzó a funcionar de nuevo.

0

Probablemente una situación muy rara, pero una vez encontré un problema similar que fue causado por el uso de un Cloner. Después de clonar un objeto con log4j logging habilitado, el registro simplemente dejó de funcionar. La solución fue la de excluir clases de log4j partir de la clonación con:

cloner.dontClone(org.apache.log4j.Logger.class, org.apache.log4j.LogManager.class,)

Cuestiones relacionadas