miércoles, 28 de marzo de 2012

Añadir la fecha en ficheros de trazas log4j

Si queremos añadir la fecha a nuestros ficheros de trazas en log4j tenemos dos opciones.

Si nuestros programa va a estar constantemente en ejecución, queremos que cada día, hora o minuto se genere otro fichero log, para ello podemos usar el DailyRollingFileAppender. El properties que tendríamos que escribir sería el siguiente:

log4j.appender.diario = org.apache.log4j.DailyRollingFileAppender
log4j.appender.diario.File = diario.log
log4j.appender.diario.Append = true
log4j.appender.diario.DatePattern = '.'yyy-MM-dd
log4j.appender.diario.layout = org.apache.log4j.PatternLayout
log4j.appender.diario.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS}%m%n 
De esta forma generaremos ficheros cada día. El problema de esto es que el fichero de hoy no tendría fecha, puesto que los ficheros se renombran al pasar cada día, almacenando las trazas de el mismo día en diario.log. Si queremos ponerle fecha a nuestro fichero de trazas de hoy esclusivamente, usando un RollingFileAppender u otro appender por ejemplo, podemos crearnos una variable de sistema de esta forma:
 static{
  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
     System.setProperty("current.date", dateFormat.format(new Date()));
    }
escribimos esas líneas de código en nuestro fichero java, nada más ejecutar el programa. Después, nuestro properties de log4j tendría esta forma:
log4j.appender.Pesado=org.apache.log4j.RollingFileAppender
log4j.appender.Pesado.file=registroHerramientaQJMT.${current.date}.log
log4j.appender.Pesado.layout=org.apache.log4j.PatternLayout
log4j.appender.Pesado.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}%m%n
Ahora ya tenemos la fecha de hoy en nuestro fichero de trazas.

2 comentarios:

Jesus dijo...

¿Es necesario de el DatePattern sea el mismo formato que hemos puesto en ConversionPattern?

Unknown dijo...

No, el DatePattern es para nombrar el archivo y el ConversionPattern es para poner la fecha a cada traza

Publicar un comentario