2013-08-08 5 views
5

毎時ロールオーバーにlog4jを設定してから、すべての日次ログファイルを1つのジップに圧縮することができます(zipには24個のログファイルが含まれます)。log4j。 1時間ごとのロールオーバー、毎日のジップ

理想的には、1週間前とそれ以前の日にのみファイルを圧縮したいと考えています。しかし、それは疑問の別の部分です。

答えて

8

おそらくDailyRollingFileAppenderを使用します。たとえば、毎時ロールするには、'.'yyyy-MM-dd-HHのDatePatternを使用します。

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

またはあなたのプログラムの構成について:log4j.propertiesファイルの場合は残念ながら

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

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

、DailyRollingFileAppenderを使用すると、ファイルのサイズを制限できないことを意味します - あなたが持っている場合は、これが問題となる可能性指定された期間中のログのトン。

に見て圧縮するには:あなたは( "ログ/ APPNAME%dの{YYYY-MM-DD} .zipの" 値=)TimeBasedRollingPolicyでDailyRollingFileAppenderを組み合わせて、それがされることを意味しています、だけでなくcompress-log4j-files

+1

毎日24のファイルをすべてピックアップして、1つのzipアーカイブにパックできますか? – Alec

+0

申し訳ありませんidk、あなたはそれを試す必要があります – Khinsu

関連する問題