Ich arbeite an einer WPF-Anwendung, die log4net verwendet. Es wird derzeit in einer einzelnen Datei protokolliert und wird nur dann erneut angezeigt, wenn es zu groß wird. Ich versuche, das zu ändern, damit es wächst, wenn die Datei zu groß wird, wenn sich das Datum ändert oder wenn die Anwendung neu gestartet wird.C# - Log4net Rollover auf Datum, Größe und Anwendung neu starten
Ich versuche Ausgang so nahe wie folgt wie möglich
App_2017-07-06.0.txt //First launch on 2017-07-06
App_2017-07-06.1.txt //Rollover due to size limit
App_2017-07-06.2.txt //Application relaunch
App_2017-07-06.3.txt //Rollover due to size limit
App_2017-07-07.0.txt //Rollover due to date change
App_2017-07-07.1.txt //Rollover due to size limit
App_2017-07-07.2.txt //Application relaunch - Currently Logging File
Von dem, was ich aus der Dokumentation zu verstehen, kann der Roll Stil gesetzt werden, um „compostite“ Datum und Größe zu erfassen oder es kann auf "einmal" eingestellt sein, um Anwendungs-Relaunches zu erfassen. Es scheint keine Möglichkeit zu haben, alle 3: http://logging.apache.org/log4net/release/sdk/html/T_log4net_Appender_RollingFileAppender_RollingMode.htm
Ich habe es an den Punkt, wo alles richtig aussieht und funktioniert, außer der Application Relaunch überschreibt eine vorhandene Datei (ich stelle mir vor, wegen der Eigenschaft appendToFile). Ich kann es einfach nicht so funktionieren lassen, wie ich es brauche und ich kann keine Antworten in der Dokumentation finden.
Diese Frage scheint ein ähnliches Ziel erreichen zu versuchen, aber hat mein Problem nicht lösen: How do I force a rollover at application startup with Log4net RolloverFileAppender?
bin ich etwas fehlt? Ist das mit log4net einfach nicht möglich?
Meine aktuelle Konfiguration
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Log\App.txt" />
<appendToFile value="false" />
<rollingStyle value="Composite" />
<maximumFileSize value="10KB" />
<maxSizeRollBackups value="-1" />
<staticLogFileName value="false" />
<preserveLogFileNameExtension value="true" />
<countDirection value="1" />
<lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level User = %username Class = %property{ClassName} Method = %property{MethodName}%newlineMessage - %message%newline%exception%newline***************************************" />
</layout>
</appender>
Meine aktuelle Ausgabe
App_2017-07-06.0.txt //First launch on 2017-07-06
App_2017-07-06.1.txt //Rollover due to size limit
App_2017-07-06.1.txt //Application relaunch - overwrites pre-existing file
App_2017-07-06.2.txt //Rollover due to size limit
App_2017-07-07.0.txt //Rollover due to date change
App_2017-07-07.1.txt //Rollover due to size limit
App_2017-07-07.1.txt //Application relaunch - overwrites pre-existing file - Currently logging file