2015-06-17 13 views
12

pracuję nad migracją projektu Java z użyciem log4j 1,2 do logowania się przy użyciu log4j 2.W migracji log4j od 1.2 do log4j 2, co zrobić z klasą DailyRollingFileAppender?

log4j 1.x ma klasę org.apache.log4j.DailyRollingFileAppender którym mowa w pliku konfiguracyjnym log4j.properties mojego projektu. Klasa o tej samej nazwie DailyRollingFileAppender już nie istnieje w log4j 2. Zastanawiam się, czy rola DailyRollingFileAppender może zostać zastąpiona przez inną klasę lub inną konfigurację lub implementację w log4j 2.

W podręczniku migracji podkreślono, że aplikacja nie może uzyskać dostępu do metod i klas wewnętrznych dla log4j 1.x, takich jak Appender, ponieważ jest ona migratna dla log4j 2. Ale aby przeprowadzić migrację, co można zrobić z DailyRollingFileAppender? Czy można go zastąpić niestandardową konfiguracją lub kombinacją klas w log4j 2? Istnieje some configuration examples in the migration guide, w szczególności jeden z FileAppender, ale co z DailyRollingFileAppender? To coś, dość blisko do podstawowego FileAppender:

Od log4j 1.2 API Javadoc klasy org.apache.log4j.DailyRollingFileAppender

DailyRollingFileAppender rozciąga FileAppender tak, że plik bazowy jest przeniesiona na częstotliwości wybrany przez użytkownika. DailyRollingFileAppender zaobserwowano problemy synchronizacji i utraty danych. Kompilator dodatków log4j zawiera alternatywy, które powinny być brane pod uwagę przy nowych wdrożeniach i które są omówione w dokumentacji dla org.apache.log4j.rolling.RollingFileAppender.

Odpowiedz

12

Szukasz w 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> 

Poprzednia próba przewraca dzień, odstęp wynosi 1 jednostkę, która jest określana przez najmniejszą jednostkę data odnośnika w strukturze plików. Innymi słowy, jeśli wzór daty to d{MMyyyy}, wówczas interwał = 1 odpowiada okresowi najazdu wynoszącemu 1 miesiąc.

Należy pamiętać, że obecnie nie ma wsparcia w ograniczaniu liczby plików dziennika przechowywanych po określonej dacie lub wieku itp. Można ograniczyć liczbę plików dziennika w danym okresie.