2009-09-18 19 views
16

Por ejemplo, la primera vez que ejecuto una aplicación (o inmediatamente después de borrar el directorio/logs), quiero que log4j escriba los registros de la aplicación en un archivo llamado log.0. Luego, salgo de la aplicación y la reinicio, quiero que los registros se escriban en log.1. Y así.¿Es posible configurar log4j para crear un nuevo archivo con cada ejecución de la aplicación?

Me gustaría mantener esto en el archivo de configuración, aunque si no puedo, supongo que siempre podría hacerlo en mi aplicación, cuando log4j está configurado.

¿Esto es posible? ¿Si es así, cómo?

Respuesta

0

En la parte superior de mi cabeza no creo que esto sea posible con Log4j. Tal vez, al cerrar la aplicación, cambie el nombre del archivo .log para que la próxima vez que inicie se cree un nuevo archivo de registro.

+0

Si ese es el caso, estoy un poco decepcionado. log4j cumple con todas mis necesidades y funciona bien. Solo quiero poder agrupar mis registros por ejecución, en lugar de por fecha o tamaño de archivo. –

+0

Una vez escribí un adaptador adicional para log4j (larga historia) el código fuente es muy fácil de leer y está bien documentado, seguro que no tardará en implementar esta característica :-) – Karl

1
+2

¿No es esta la respuesta para otro marco, no log4j en sí? Al menos no funciona con log4j para mí: ' log4j: WARN Continua error de análisis 11 y columna 61 log4j: WARN Elemento tipo" timestamp "debe ser declarado. log4j: WARN Error de análisis continuo 18 y columna 16 log4j: WARN El contenido del tipo de elemento "appender" debe coincidir con "(errorHandler?, Param *, layout?, Filter *, appender-ref *)". ' – Henning

3

solución con log4j2:

 <RollingFile name="RollingFile" fileName="${log-path}/GScraper.log" 
       filePattern="${log-path}/GScraper_%d{yyyy-MM-dd}_%i.log"> 
     <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/> 
     <PatternLayout> 
      <pattern>%level\t%d{yyyy-MM-dd HH:mm:ss} %c: %m%n</pattern> 
     </PatternLayout> 
     <Policies> 
      <TimeBasedTriggeringPolicy interval="1" modulate="true"/> 
      <SizeBasedTriggeringPolicy size="32 MB" /> 
      <OnStartupTriggeringPolicy/> 
     </Policies> 
    </RollingFile> 

Nota OnStartupTriggeringPolicy y % i en filePattern. De esta forma, Log4j creará un nuevo archivo de registro con índice cada vez que ejecute la aplicación.

Cuestiones relacionadas