2015-06-17 7 views
12

arbeite ich ein Java-Projekt verwenden log4j 1.2 für die Anmeldung zur Migration log4j 2.In log4j 1.2 zu log4j 2 Migration, was mit der DailyRollingFileAppender-Klasse zu tun?

log4j 1.x verwendet, hat eine Klasse org.apache.log4j.DailyRollingFileAppender, die in meinem Projekt log4j.properties Konfigurationsdatei genannt wird. Eine Klasse mit dem gleichen Namen DailyRollingFileAppender nicht mehr in log4j 2. Ich frage mich, ob DailyRollingFileAppender 's Rolle kann durch eine andere Klasse (n) oder einige Ersatzkonfiguration oder Implementierung in log4j 2 ersetzt werden.

Die Migrationsanleitung betont, dass Die Anwendung darf nicht auf Methoden und Klassen zugreifen, die in log4j 1.x enthalten sind, wie z. B. Appender, damit sie auf log4j migrierbar sind. 2. Um die Migration durchzuführen, was können Sie unter DailyRollingFileAppender tun? Ist es möglich, sie durch eine benutzerdefinierte Konfiguration oder eine Kombination von Klassen in log4j 2 zu ersetzen? Es gibt some configuration examples in the migration guide, insbesondere eine mit FileAppender, aber was ist mit DailyRollingFileAppender? Es ist etwas ziemlich nah an der Grund FileAppender:

Von log4j 1.2 API Javadoc, Klasse org.apache.log4j.DailyRollingFileAppender

DailyRollingFileAppender erstreckt FileAppender so dass die zugrunde liegende Datei über bei einem Benutzer gewählten Frequenz gerollt wird. Es wurde beobachtet, dass DailyRollingFileAppender Synchronisationsprobleme und Datenverlust aufweist. 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.

Antwort

12

Sie sind für die RollingFile appender

<RollingFile name="DAILY_LOG" fileName="log/daily.log" 
       filePattern="log/%d{ddMMyyyy}_daily.log" 
       > 
     <PatternLayout pattern="%d [%7r] %5p - %c - %m%n"/> 
     <Policies> 
     <TimeBasedTriggeringPolicy interval="1"/> 
     </Policies>        
</RollingFile> 

Die vorherige Probe rollt bis zum Tag, das Intervall ist 1 Einheit suchen, die durch die kleinste Einheit des Datumssuche in dem Dateimuster bestimmt wird. Mit anderen Worten, wenn das Datumsmuster d{MMyyyy} war, entspricht das Intervall = 1 einer Rollover-Periode von 1 Monat.

Bitte beachten Sie, dass es derzeit keine Unterstützung gibt, die Anzahl der Protokolldateien zu begrenzen, die nach einem bestimmten Datum oder einem bestimmten Alter aufbewahrt werden. Sie können die Anzahl der Protokolldateien pro Zeitraum begrenzen.