Ich bin konfigurieren log4net einen Verbund RollingFileAppender zu verwenden, so dass die aktuelle Datei immer logfile.log genannt wird und alle nachfolgenden Dateien werden Logfile-YYYY.MM.dd.seq.log genannt wo seq die Sequenz Nummer, wenn ein Protokoll innerhalb eines Tages eine bestimmte Größe überschreitet. Leider hatte ich sehr wenig Erfolg beim Konfigurieren eines solchen Setups.Wie konfiguriere ich einen RollingFileAppender, um mit log4net nach Datum und Größe zu rollen?
Edit:
Meine aktuelle Konfiguration wird unten eingefügt. Es wurde auf der Grundlage mehrerer Antworten aktualisiert, was mich für meine Bedürfnisse nah genug bringt. Dies erzeugt Dateien des Formats: logfile_YYYY.MM.dd.log.seq
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs\\logfile"/>
<staticLogFileName value="false"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<datePattern value="_yyyy.MM.dd".log""/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="75KB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
</log4net>
Eine interessante Anmerkung,
<staticLogFileName value="false"/>
auf true bewirkt, dass der Logger alle Dateien, nicht schreiben zu setzen.
In der Dokumentation zu log4j: Bei DailyRollingFileAppender wurden Synchronisationsprobleme und Datenverlust festgestellt. Der Zusatz "log4j extras" enthält Alternativen, die bei neuen Bereitstellungen berücksichtigt werden sollten und in der Dokumentation für org.apache.log4j.rolling.RollingFileAppender erläutert werden. –