java - logger - Comprimir archivos Log4j
log4j timebasedrollingpolicy example (4)
La única otra cosa que veo es actualizar log4j a más de 1.3.15 / 1.4 y usar el rodillo TimeBasedRollingPolicy para tener habilitada la compresión automática, pero eso requeriría una actualización de log4j esencialmente (y compatibilidad de la aplicación también)
Hmmm ... puede ser otra cosa mejor que tener es dejar que log4j ejecute un comando una vez que el archivo se haya lanzado. Entonces, en lugar de gzip, puedo usar alguna otra lógica de compresión como bzip o lzop, etc. ese sería otro enfoque si tuviera esta facilidad en log4j hoy.
¿Es posible comprimir archivos de registro (lo hago a través de RollingFileAppender)?
Me encontré con esta gran respuesta, pero luego seguí investigando un poco y log4j 2 está fuera!
Ahora puedes tener compresión con la biblioteca básica y mucho, mucho más ... ¡es simplemente increíble!
RollingFileAppender - Estaba buscando algo que tuviera tanto tiempo de duración como tamaño de base, y con compresión ... ¡tiene ambos! y puedo soltar mi biblioteca syslog4j ya que esta también la tiene.
No use log4j 1.2 + extras a menos que realmente tenga que hacerlo.
Sé que esto no responde exactamente a su pregunta, pero sí propone una solución alternativa.
La forma en que lo manejamos es mediante la ejecución de un proceso por lotes al final del día que comprime los archivos de registro anteriores hasta la fecha actual, eliminándolos antes de una semana de antigüedad y luego los copia en otro servidor de archivos. De esta forma, la aplicación no necesita consumir ningún ciclo de CPU haciendo esto y en el servidor tenemos registros que no son más antiguos que una semana y en otro servidor de archivos tenemos archivos de registro más antiguos.
log4j extras tiene soporte para eso:
solo agregue lo siguiente a su configuración de RollingFileAppender y, al finalizar el nombre de archivo en .gz , comprimirá automágicamente sus archivos de registro:
<appender...>
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/>
</rollingPolicy>
</appender>
mira aquí para algunos detalles en el javadoc:
espero que haya ayudado