Como forço uma rolagem na inicialização do aplicativo com o Log4Net ROLLOVERFILEAPPENDE?

StackOverflow https://stackoverflow.com/questions/222210

  •  03-07-2019
  •  | 
  •  

Pergunta

Tenha log4net configurado em nosso aplicativo para usar um nome carimbado e um limite de tamanho de arquivo de 10meg.
Isso causa automaticamente uma rolagem para um novo arquivo à meia -noite e sempre que o limite de 10 meg é atingido. Eu também gostaria de rolar o log para um novo arquivo sempre que o aplicativo for iniciado (ou fechado).
Posso obter os três comportamentos de rolagem?

Foi útil?

Solução

Definir APÊNDOFILE para false em seu arquivo de configuração.

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

Editar: Para responder ao comentário de Craig:

Se você configurar corretamente o staticLogFileName e o CountDirection (ver http://logging.apache.org/log4net/release/sdk/log4net.appender.rollingFileappender.html Para mais), então as coisas rolam conforme desejado. Configuramos programaticamente o madeireiro em nosso aplicativo onde usamos isso, mas é assim que o código se parece:

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()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top