java - ¿Es posible configurar log4j para crear un nuevo archivo con cada ejecución de la aplicación?
(4)
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í.
Me gustaría mantener esto en el archivo de configuración, aunque si no puedo, creo que siempre podría hacerlo en mi aplicación, cuando se configura log4j.
es posible? ¿Si es así, cómo?
Consulte el manual de logback en archivos con nombres únicos (por marca de tiempo) .
Desde lo alto de mi cabeza, no creo que esto sea posible con Log4j. Tal vez cuando cierre la aplicación podría cambiar el nombre del archivo .log para que la próxima vez que inicie se cree un nuevo archivo de registro.
Puede ser esto lo que buscas.
http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/
** Edición: ** Tengo una solución más! Pero no tengo idea de si funciona o no, pero puede intentar http://www.mail-archive.com/[email protected]/msg02132.html
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>
Tenga en cuenta OnStartupTriggeringPolicy y % i en filePattern . De esta manera, Log4j creará un nuevo archivo de registro con índice cada vez que ejecute la aplicación.