1

RHEL 7 で Tomcat 8.0.21 を使用しています。私の Java コードでは、java.util.logging.Logger.

ログ ファイルは常に 1 つだけです。Tomcat を再起動すると、その瞬間からログが再開され、以前のログはすべて失われます。

here%gの指示に従ってファイル名に追加しましたが、ファイル名に0を追加するだけで、回転は発生しません。

を作成するコードは次のとおりですFileHandlerstrFilePath値は、たとえば「/tmp/mylog.log」です。LogFormatter自分のクラスです。

// Need to set format with own formatter class to get plain text to one line (default format is XML).
FileHandler file_handler = new FileHandler(strFilePath);
file_handler.setFormatter(new LogFormatter());
logger.addHandler(file_handler); 

私の Windows 7 ラップトップでは、同じコードと Tomcat バージョンを使用してログが正常にローテーションされます。

LoggerRHEL サーバーで Java ログ ファイルのローテーションを有効にするにはどうすればよいですか?

編集:を構築するときに、ファイル名にタイムスタンプを追加するだけでよいと思いますFileHandler。やってみます。

4

2 に答える 2

1

FileHandler は、制限を超えた場合 (またはファイルをロックできない場合) にのみ回転します。時間ごとにファイルをローテーションしたい場合は、そのためのコードを作成する必要があります。ローテーションをトリガーするだけの場合は、実際のファイル ハンドラーを開く前に、制限が 0 バイトの使い捨てファイル ハンドラーを作成します。

new FileHandler(pattern, 0, 1, false).close();
于 2015-10-02T14:30:51.493 に答える