rolling example ejemplo appenders log4j rotation

example - log4j2 ejemplo



¿Cómo puedo obtener log4j para eliminar viejos archivos de registro en rotación? (3)

Los registros giran por un motivo, por lo que solo conserva tantos archivos de registro. En log4j.xml, puede agregar esto a su nodo:

<param name="MaxBackupIndex" value="20"/>

El valor le dice a log4j.xml que solo mantenga 20 archivos de registro girados. Puede limitar esto a 5 si lo desea o incluso 1. Si su aplicación no está registrando esa cantidad de datos, y tiene 20 archivos de registro que abarcan los últimos 8 meses, pero solo necesita una semana de registros, entonces creo que necesita ajustar los parámetros log4j.xml "MaxBackupIndex" y "MaxFileSize".

Alternativamente, si está usando un archivo de propiedades (en lugar del xml) y desea guardar 15 archivos (por ejemplo)

log4j.appender.[appenderName].MaxBackupIndex = 15

¿Cómo puedo obtener log4j para eliminar viejos archivos de registro en rotación? Sé que puedo configurar trabajos automatizados (cron para UNIX y tarea programada para Windows), pero lo quiero multiplataforma, y ​​lo quiero en la configuración de registro de nuestra aplicación como parte de nuestra aplicación, en lugar de en un código separado fuera del sistema operativo lenguajes de scripting específicos. Nuestra aplicación no está escrita en los lenguajes de scripting del sistema operativo, y no quiero hacer esta parte de ella en ellos.


No hay un valor predeterminado para controlar la eliminación de archivos de registro antiguos creados por DailyRollingFileAppender. Pero puede escribir su propio Appender personalizado que borre archivos de registro antiguos de forma muy similar a la configuración de maxBackupIndex para RollingFileAppender.

Instrucciones simples encontradas here

De here :

Si está tratando de utilizar Apache Log4J DailyRollingFileAppender para un archivo de registro diario, es posible que necesite especificar la cantidad máxima de archivos que se deben conservar. Al igual que RollingFileAppender es compatible con maxBackupIndex. Pero la versión actual de Log4j (Apache log4j 1.2.16) no proporciona ningún mecanismo para eliminar archivos de registro antiguos si está utilizando DailyRollingFileAppender. Traté de hacer pequeñas modificaciones en la versión original de DailyRollingFileAppender para agregar la propiedad maxBackupIndex. Por lo tanto, sería posible limpiar los archivos de registro antiguos que pueden no ser necesarios para el uso futuro.

RollingFileAppender hace esto. Solo necesita establecer maxBackupIndex al valor más alto para el archivo de respaldo.