5

1 時間ごとにロールオーバーするように log4j を構成してから、毎日のすべてのログ ファイルを 1 つの zip に圧縮できますか (zip に 24 個のログ ファイルが含まれるように)。

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

4

1 に答える 1

9

おそらくDailyRollingFileAppenderを使用したいと思うでしょう。たとえば、1 時間ごとにロールするには、DatePattern を使用します'.'yyyy-MM-dd-HH。log4j.properties ファイルの場合:

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

または、プログラムによる構成の場合:

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

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

残念ながら、DailyRollingFileAppender を使用すると、ファイル サイズを制限できないことを意味します。これは、指定されたロール期間に大量のログがある場合に問題になる可能性があります。

圧縮するには、compress-log4j-files をご覧ください。

于 2013-08-08T16:12:40.523 に答える