Logs faltantes al utilizar el apéndice RollingFile en log4j2.xml
Este es mi archivo lo4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="log.directory">${sys:jboss.server.log.dir}</Property>
<Property name="log.filename">application</Property>
<Property name="log.pattern">[%d{DEFAULT}] [%-5level] [%t] [%logger] [%X{AD.requestGUID}] %msg%n</Property>
</Properties>
<Appenders>
<RollingFile name="File" fileName="${log.directory}/${log.filename}.log"
filePattern="${log.directory}/${log.filename}.log.%i.gz">
<PatternLayout pattern="${log.pattern}"/>
<Policies>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="300"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
Cada ~20 minutos tengo ~2 minutos de registros perdidos. Cuando reduje el tamaño de SizeBasedTriggeringPolicy a 20 MB, noté que la cantidad de registros perdidos se redujo también. Creo que el problema aparece cuando la aplicación intenta comprimir el archivo, porque cuando usé FileAppender, cuando todo se escribió en un archivo no comprimido, no tuve pérdida de registros.
En la documentación de log4j2
https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender
Encontré información sobre tempCompressedFilePattern —> El patrón del nombre de archivo del archivo de registro archivado durante la compresión. Intenté usarlo de esta manera
<DefaultRolloverStrategy max="300" tempCompressedFilePattern ="${log.directory}/temp.log"/>
pero no hubo cambios. ¿Quizás lo utilicé de manera incorrecta?
¿Alguna idea de cómo solucionar el problema de los registros perdidos? ¡Gracias!
davy.ai
Según la información proporcionada, el problema parece estar relacionado con el proceso de compresión de archivos en RollingFileAppender. La solución sugerida de reducir el tamaño de SizeBasedTriggeringPolicy a 20 MB parece haber reducido la pérdida de registros, lo cual indica una posible correlación entre la compresión de archivos y la pérdida de registros.
El uso de tempCompressedFilePattern en DefaultRolloverStrategy no parece relevante para el problema de la pérdida de registros. tempCompressedFilePattern se utiliza para especificar el nombre y la ubicación del archivo temporal creado durante el proceso de compresión, y no está directamente relacionado con la pérdida de registros.
Para abordar el problema de la pérdida de registros, se pueden considerar las siguientes sugerencias: