Saltar al contenido

Política de activación basada en el tiempo en log4j2

Solución:

1 aquí indica 1 día y no 1 hora. He probado manualmente con la siguiente configuración.

<RollingFile name="T" fileName="/data_test/log/abc.log"
        filePattern="/data_test/log/abc-%d{MM-dd-yyyy}-%i.log">
        <PatternLayout>
            <Pattern>%d{ISO8601} %-5p [%t] (%F:%L) - %m%n</Pattern>
        </PatternLayout>
        <Policies>              
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            <SizeBasedTriggeringPolicy size="100 KB" />
        </Policies>
    </RollingFile>

Para las pruebas manuales, cambio la fecha y la hora del sistema. Primero, intente aumentar 1 hora. Los archivos de registro se generarán pero no según lo esperado. Luego cambie la fecha del sistema, aumente en 1 día y luego vea los resultados.

Suponga que el último archivo de registro (abc.log) del día 29 de octubre es de 50 KB. El tamaño de la configuración es de 100 KB. Si cambiamos el día (aumentamos en 1 día) y luego ejecutamos. Luego, se cambiará el nombre del último archivo 29-Oct- (algún número de secuencia) .log (archivo de 50 KB a medida que se copia) y se creará un nuevo archivo con abc.log

He intentado esto con un servlet simple con la siguiente configuración en web.xml

<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>log4j2.xml</param-value>
</context-param>

mantenga log4j2.xml en la carpeta src. log4j2.xml no se carga si lo mantenemos en classpath.

Documentación de Log4j:

intervalo -> (entero) La frecuencia con la que debe producirse un traspaso en función de la unidad de tiempo más específica en el patrón de fecha. Por ejemplo, con un patrón de fecha con horas como el elemento más específico y un incremento de 4 renovaciones ocurriría cada 4 horas. El valor predeterminado es 1.

Debe cambiar el patrón de nombre de archivo si desea crearlo cada hora.

Como mencionó Abid, el valor del intervalo se interpreta en el contexto del patrón que se especifica como parte de filePattern. Comienza con la denominación más baja. Por ejemplo, si el patrón contiene S, la frecuencia estará en milisegundos. Admite el patrón de fecha como se describe en detalle como parte de SimpleDateFormat java doc http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *