es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  , ,

Answer

  1. Avatar for 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:

    • Verificar si hay algún error o excepción relacionado con la compresión de archivos o RollingFileAppender en los archivos de registro o registros de la aplicación.
    • Monitorear el uso y la disponibilidad del espacio en disco durante el proceso de compresión para asegurarse de que haya suficiente espacio disponible para las operaciones de archivo.
    • Considerar el uso de una herramienta o biblioteca de compresión de archivos diferente para comprimir los archivos de registro y configurar RollingFileAppender para utilizar la biblioteca externa para la compresión.
    • Probar la aplicación y los archivos de registro en un entorno diferente o con configuraciones diferentes para identificar posibles problemas o conflictos a nivel del sistema.

Comments are closed.