java log4j

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?



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.



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.