Wie erzwinge ich einen Rollover beim Start der Anwendung mit Log4net RolloverFileAppender?

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

  •  03-07-2019
  •  | 
  •  

Frage

Haben Log4Net in unserer Anwendung konfiguriert ist, einen Datumsstempel Namen und eine 10Meg maximale Dateigröße zu verwenden.
Dies bewirkt, dass automatisch ein Rollover in eine neue Datei um Mitternacht und wann immer die 10Meg Grenze erreicht ist. Ich möchte auch jedes Mal in eine neue Datei über die Protokollierung rollen die Anwendung gestartet wird (oder geschlossen).
Kann ich alle drei Überrollverhalten bekommen?

War es hilfreich?

Lösung

appendToFile falsch in Ihre Konfigurationsdatei.

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

EDIT: Um antworten Craigs Kommentar:

Wenn Sie richtig Setup StaticLogFileName und CountDirection (siehe http: //logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html mehr), dann rollen die Dinge nach Wunsch. Wir konfigurieren programmatisch den Logger in unserer App, wo wir diese verwenden, aber das ist, was der Code wie folgt aussieht:

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()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top