2008-10-21 8 views
5

Haga que Log4Net se configure en nuestra aplicación para usar un nombre con fecha y un límite de tamaño de archivo de 10 Megas.
Esto provoca automáticamente un vuelco a un archivo nuevo a la medianoche y siempre que se alcanza el límite de 10 Megas. También me gustaría pasar el registro a un nuevo archivo cada vez que se inicia (o se cierra) la aplicación.
¿Puedo obtener los tres comportamientos de vuelco?¿Cómo fuerzo una transferencia al inicio de la aplicación con Log4net RolloverFileAppender?

Respuesta

4

Establezca appendToFile como falso en su archivo de configuración.

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
.... 
    <appendToFile value="false" /> 
.... 
</appender> 

EDIT: Para contestar el comentario de Craig:

Si de esta ajustada StaticLogFileName y CountDirection (ver http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html para más), entonces ruedan las cosas como se desee. Configuramos programáticamente el registrador en nuestra aplicación donde lo usamos, pero así es como se ve el código:

Dim Layout As New PatternLayout("%date{yyyy-MM-dd HH:mm:ss,fff} [%-6thread] %-5level %type{2}.%method(%line) - %message%newline") 
Dim Appender As New log4net.Appender.RollingFileAppender() 
Appender.File = Path.Combine(FileSystemHelper.LogDirectory, LogFileName) 
Appender.Layout = Layout 
Appender.AppendToFile = False ' we will start a new one when the program starts' 
Appender.Name = "RollingLogFileAppender" 
Appender.Threshold = LogLevel() 'May want to set this by configuration' 
Appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Size 'This means it will start a new log file each time the log grows to 10Mb' 
Appender.MaximumFileSize = "10MB" 
Appender.MaxSizeRollBackups = -1 'keep an infinite number of logs' 
Appender.StaticLogFileName = True 
Appender.CountDirection = 1 ' to reduce rollover costs' 
log4net.Config.BasicConfigurator.Configure(Appender) 
Appender.ActivateOptions() 
+1

Tenga en cuenta que esto * reemplaza * el archivo preexistente. Si considera o no que esto es una "reinversión" es una cuestión de interpretación. (Para mí, rollover implica dejar el registro más antiguo). –

+0

@Bob King: ¿alguna idea de cuáles son las configuraciones correctas para CountDirection y StaticLogFileName para que se lance (es decir, copiar el registro anterior en otro lugar) al inicio de la aplicación? Establecí RollingStyle = Once, CountDirection = 1, StaticLogFileName = true, AppendToFile = false pero no puedo hacer que se desplace como lo desee. También experimenté con una variedad de otras configuraciones sin suerte – fostandy

+0

@fostandy - prueba configurando el estilo de rodadura en algo más que una vez. El tamaño funciona para nosotros Lo siento, me acabo de dar cuenta de que el comentario tiene más de un año de antigüedad :-( –

Cuestiones relacionadas