2016-09-02 15 views
0

特定のサイズに達したときにJava FileHandlerが次のログファイルにどのようにロールアップするかを理解しています。私が欲しいのは少し違います。私はFileHandlerを使用して、プログラムの起動時にシーケンス内の最も古い書き込み時刻のログファイルを使用したいと考えています。例えばJava FileHandlerとローリングログファイル

私は5つのログファイルを使用するように指定している場合: mylog.0.log、mylog.1.log ... mylog.4.log

プログラムが最後mylog.2.logを更新した場合次回プログラムを起動するときに、mylog.3.logへのロギングを開始します。

私が解決しようとしている問題は、ユーザーがプログラムを実行して何らかの事態が起きたときに、通常はプログラムを再起動し、mylog.0.logが利用可能な場合、常にそれを使用し、mylog.1.logに移動しないことです。私は以前のプログラムの実行から情報を失います。 java.util.logging.FileHandlerのドキュメント毎の

+0

ファイルが存在する場合は条件コードブロックを使用し、別の名前のログファイルを指定します。 –

+0

この質問に追加できるコードおよび/またはlogging.propertiesはありますか? – jmehrens

答えて

0

ファイルは基本ファイル名になど、 "0"、 "1"、 "2" を追加し命名されている続いて古い

注文は常にあなたが望むものの反対であることを暗示しているようです。

あなたの唯一のオプションは、implement a config classというファイル名を生成してFileHandlerに渡すことです。

manually rollover a log fileでもご希望の順番ではありません。

+0

制限を1に設定しないと、次のファイルに転記する前に1バイトをファイルに書き込むだけですか?これはどのように私の問題を解決するのか。私は、プログラムの寿命のための単一のログファイルにすべてを書き留めて、プログラムの次の呼び出しのために次のシーケンスログファイルを使用して、私が望むログファイルの最大数に達するとログファイル0にロールバックします使用する。 –

関連する問題