Cómo utilizar SizeBasedTriggeringPolicy con TimeBasedRollingPolicy en Log4j?

Hola soy de usar Log4j para el registro. A continuación es mi configuración.

<?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="FileAppender_Comp3" class="org.apache.log4j.rolling.RollingFileAppender"> 

<rollingPolicy name="file" class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
<param name="FileNamePattern" value="log/Comp3_%d{dd-MM-yyyy HH-mm-ss}.log" />
</rollingPolicy> 

<triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="MaxFileSize" value="3kb"/>
</triggeringPolicy>

<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%t] %c (%F:%L) - %m%n"/>
</layout>

</appender>

Pero cuando estoy ejecutando el archivo es tirar abajo de error.

log4j:WARN Failed to set property [maxFileSize] to value "3kb". 

Cómo puedo solucionar este problema. Por favor me ayude.

Sólo una conjetura, pero no intenta reemplazar 3kb con 3072? En el JavaDoc (goo.gl/ahbl8) he encontrado “Conjuntos de rollover umbral de tamaño en bytes”, así que yo creo que no se puede pasar el valor de KB, MB o de otro sufijo.
Véase mi respuesta a una pregunta similar: stackoverflow.com/questions/13936021/…
has encontrado la solución para esto?

OriginalEl autor Samurai | 2012-09-04

3 respuestas

  1. 3

    Si usted está usando Log4j 2, puede especificar el tamaño en KB o MB.

    XML correspondiente a continuación.

    <Policies>
        <!-- Starts a new log on tomcat start -->
        <OnStartupTriggeringPolicy /> 
        <!--  Starts a new file when size reaches threshold -->
        <SizeBasedTriggeringPolicy size="10 MB" /> 
        <!-- causes a rollover once the date/time pattern no longer 
           applies to the active file -->
        <TimeBasedTriggeringPolicy /> 
    </Policies

    Consulte https://logging.apache.org/log4j/2.x/manual/appenders.html para obtener más detalles.

    OriginalEl autor krishnakumarp

  2. 0

    sólo ocurrió venir a través de esta pregunta y pensé que debería compartir la solución:

    conjunto de la MaxFileSize parámetro a un valor en bytes, de modo que por tu ejemplo, se establece como

    <param name="MaxFileSize" value="3072"/>

    Aquí es una pregunta similar, en los que esta solución es confirmado.

    OriginalEl autor Gabriel Ruiu

Deja un comentario

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