2009-03-13 16 views
29

estoy usando Log4net desde hace un tiempo y es un marco de registro increíble, especialmente cuando engancha en Castle.Windsor. Sin embargo ...Tamaño máximo de LogFileAppender en Log4net

Normalmente uso el apilador de archivos rodantes, pero esto ha resultado en demasiados archivos de registro de los que realmente quiero, así que en su lugar, para mi último proyecto, he usado el LogFileAppender básico, pero el problema es el archivo de registro sigue creciendo (aparentemente para siempre).

¿Cómo puedo saber el appender a no ir más de un tamaño fijo (y empezar a eliminar los registros antiguos y añadiendo los nuevos para el archivo

Mi configuración actual se parece a:?

<appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 
    <file value="E:\Logs\iWater\Schedule-Dispatch-API.log"/> 
    <param name="AppendToFile" value="true"/> 
    <maximumFileSize value="2048KB"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%-16date{dd MMM HH:mm:ss} %-7level %-25.35logger{1} %message%newline"/> 
    </layout> 
</appender> 

Su parece que el atributo maximumFileSize no está siendo respetado. ¿soluciones?

Por otra parte, ¿cómo puedo configurar el archivo de rodadura appender a sólo crean 1 archivo (nunca)?

Respuesta

55

clase El FileAppender no tiene las propiedades MaxFileSize/MaximumFileSize. Solo los obtiene si usa un RollingFileAppender. Aquí hay un ejemplo que limitará su archivo a un tamaño máximo fijo, sin copias de seguridad (establezca maxSizeRollBackups en 0). Tenga en cuenta que cuando el archivo alcanza su tamaño máximo, se trunca (básicamente borra todo el registro existente y comienza de nuevo):

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="log.txt" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="0" /> 
    <maximumFileSize value="10MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 
+19

Para evitar el truncamiento completa y todavía resolver el problema reportado de _too muchos files_ registro, recomendaría el establecimiento de la maxSizeRollBackups a un número bajo, por ejemplo 2, y posiblemente reduciendo el maximumFileSize en consecuencia (para 2, divida por 3). De esta forma, inmediatamente después de un truncamiento, todavía tiene 2 tercios de los mensajes de registro más recientes disponibles, en lugar de ninguno. –

2

LogFileAppender no admite la limitación del tamaño del archivo de salida (al menos en las referencias que puedo encontrar). Para limitar el tamaño del archivo, utilice RollingFileAppender y despliegue el tamaño y establezca el límite del tamaño del archivo.

Para limitar el número de rollo sobre los archivos usar el atributo MaxSizeRollBackups