2013-08-08 15 views
5

Czy mogę skonfigurować log4j tak, aby przewracał się co godzinę, a następnie skompresował wszystkie dzienne pliki logu w jeden plik zip (tak, aby plik zip zawierał 24 pliki dziennika).log4j. Co godzinę można rolować, zip codziennie

Idealnie chciałbym skompresować pliki tylko na te, które mają tydzień i wcześniej. Ale to kolejna część pytania.

Odpowiedz

8

Prawdopodobnie chcesz użyć DailyRollingFileAppender. Aby wyświetlać je co godzinę, możesz użyć elementu DatePattern z '.'yyyy-MM-dd-HH. Dla pliku log4j.properties:

log4j.appender.myAppender=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.myAppender.DatePattern='.'yyyy-MM-dd-HH 
... 

lub do swojej programowej konfiguracji:

DailyRollingFileAppender appender = new DailyRollingFileAppender(); 
appender.setDatePattern("'.'yyyy-MM-dd-HH"); 

Logger root = Logger.getRootLogger(); 
root.addAppender(appender); 

Niestety, stosując DailyRollingFileAppender oznacza, że ​​nie można ograniczyć rozmiar pliku - może to być problematyczne, jeśli masz ton dzienników w danym okresie walcowanym.

do kompresji ma wygląd: compress-log4j-files

+1

również, czy to znaczy, że łączy DailyRollingFileAppender z TimeBasedRollingPolicy (wartość = "log/APPNAME% d ​​{rrrr MM-dd} ZIP."), Będzie w stanie odebrać wszystkie te 24 pliki dziennie i spakować je do jednego archiwum zip? – Alec

+0

Przepraszam idk, musisz spróbować – Khinsu

Powiązane problemy