中間の .log ファイルを作成せずに gzip されたログ ファイルを作成するように log4j をセットアップすることは可能ですか? いくつかのローリング戦略 (日付によるローリングなど) がありますが、最初に解凍されたファイルが作成されます。
質問する
5529 次
3 に答える
3
最適化された独自の実装バージョンを実装することで、org.apache.log4j.RollingFileAppender を拡張し、現在のロジックをオーバーライドする独自の Appender を作成できます。現在のファイルを圧縮し、別のログ ファイルへのローリングを破棄します (RollingFileAppender の既定の実装)。例:
log4j.appender.{name}=br.com.sample.MyZipRollingFileAppender
java.util.zip.ZipOutputStream または java.util.zip.GZIPOutputStream を使用して実装例を「ググって」検索し、現在のファイルを圧縮できます。
于 2013-05-21T20:36:56.257 に答える
1
このライターを使用してこのタスクを解決することができます: http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/coyote/http11/filters/FlushableGZIPOutputStream.html および次のようなコード
Writer writer = new OutputStreamWriter(new FlushableGZIPOutputStream(newFileOutputStream(logFileName), LINES_TO_FLUSH));
appender.setWriter(writer);
機能しますが、いくつかの欠点があります。圧縮率が低く、このファイルを常に解凍できるとは限りません。それでローテーションに戻りました。
于 2013-08-09T09:55:42.327 に答える
0
org.apache.log4j.rolling.TimeBasedRollingPolicy を試すことができます。
<appender...>
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/wombat/log.%d{yyyy-MM}**.gz**"/>
</rollingPolicy>
</appender>
于 2013-05-21T20:35:43.557 に答える