Yo uso RollingFileAppender de log4j 1.2.16, que los rollos de archivos de registro, cuando alcanzan un cierto tamaño. Ahora me gustaría rodar los archivos de registro diario y cuando alcanzan un cierto tamaño. De este modo, habrá uno o más archivos de registro por día.

Por ejemplo,

myapp.registro de 
myapp-17.12.2013.registro de 
myapp-16.12.2012.registro de 
myapp-16.12.2012.1.registro de 
myapp-16.12.2012.2.registro de 

Hay un off-the-shelf appender, que ¿ya?

OriginalEl autor Michael | 2012-12-18

3 Comentarios

  1. 8

    De hecho hay dos opciones:

    1. uso LogBack con su tamaño y el tiempo de activación de la política: http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedFNATP
    2. hay TimeAndSizeRollingAppender para Log4J desde aquí: http://www.simonsite.org.uk/

    Tenga en cuenta que ambas opciones de uso de archivo cambia de nombre. Téngalo en cuenta si hay otro script automáticamente mover estos archivos. Cambiar el nombre de archivo es arriesgado cuando dos procesos de acuerdo con el mismo archivo.

    Mi sugerencia es escribir directamente a la inmutable nombre de archivo de registro en el patrón: myapp-{dd.MM.aaaa}.{X}.registro. Que manera de «rolling» es simplemente el cierre de un archivo y la apertura de uno nuevo. No cambia el nombre. No subprocesos en segundo plano.

    Es workrd . Muchas gracias.

    OriginalEl autor David Peleg

  2. 3

    La respuesta rápida es «no». Mirando log4j del javadoc: https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/FileAppender.html

    Hay sólo dos-de-la-caja de archivo appenders: DailyRollingFileAppender y RollingFileAppender (y el primero no es recomendable porque tiene problemas de sincronización).

    Para lograr lo que usted desea, usted debe crear su propio appender, que se extiende RollingFileAppender y modificación de la misma a rodar el archivo si el día de cambios. La modificación en el método:

     protected void subAppend(LoggingEvent event)

    Usted puede ver su código fuente aquí: http://www.docjar.com/html/api/org/apache/log4j/RollingFileAppender.java.html (línea 274).

    Solo necesitas copiar y pegar el código y cambiar la convocatoria de rollOver para satisfacer sus necesidades.

    OriginalEl autor izaera

  3. 3

    Por debajo de configuración xml para hacer el trabajo:
    JAR necesarios: log4j-rolling-appender-20150607-2059

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration debug="true"
        xmlns:log4j='http://jakarta.apache.org/log4j/'>
        <appender name="file"
            class="uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender">
            <param name="File" value="D:\App.log" />
            <param name="Threshold" value="DEBUG" />
            <param name="DatePattern" value=".yyyy-MM-dd" />
            <param name="MaxFileSize" value="1KB" />
            <param name="MaxRollFileCount" value="100" />
            <param name="ScavengeInterval" value="30000" />
            <param name="BufferedIO" value="false" />
            <param name="CompressionAlgorithm" value="GZ" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n" />
            </layout>
        </appender>
    
        <root>
            <level value="DEBUG" />
            <appender-ref ref="file" />
        </root>
    
    </log4j:configuration>

    OriginalEl autor brajesh kumar

Dejar respuesta

Please enter your comment!
Please enter your name here