3

java.util.logging.Logger を使用してアプリにログインします。

    FileHandler fh=new FileHandler(this.todayFileName, 0, 1, true);

    fh.setFormatter(new SimpleFormatter());

    Logger.getLogger(rootLogger.getName()).setLevel(Level.ALL);

    Logger.getLogger(rootLogger.getName()).addHandler(fh); 

ただし、ログのローテーションが有効になっていることを除いて、これはうまく機能します。

そして私はファイルを取得します:

run.log run.log.1 run.log.2

私が望むのは、ローテーションを有効にせずに、ログ ファイルを 1 つだけ取得することです。

それ、どうやったら出来るの ?

4

4 に答える 4

1

FileHandleコンストラクターを使用する必要があります。これは、ファイル名とブール値、またはファイル名のみを使用するコンストラクターを使用します。このようにして、ローテーションなしで単一のログファイルを取得します。

よろしく、ルイス。

于 2010-07-13T17:36:32.777 に答える
1

同じアプリケーションを同時に複数回実行すると、java.util.logging は run.log run.log.1 run.log.2 のような多数のログ ファイルを作成します。

そして、私はすでにこの問題を抱えているので、アプリケーションが正しく閉じていると確信していますか? アプリケーションが正しく閉じられなかったため、アプリケーションを開始したときに myApplication.log.1 が作成されました

于 2009-10-16T06:26:10.453 に答える
1

すでに与えられた回答とは別に、ログローテーションを無効にしたいというあなたの希望に疑問を投げかけます。ログをローテーションするのには十分な理由があります (ディスク容量の不足など)。 make は標準的な手順です。オフにしたい理由を調査し、その必要性を排除すると思います。たとえば、ログ情報を簡単にマイニングできるようにしたい場合は、それを行うパッケージ (splunk など) を検討し、ローテーションされたログで正常に動作することを検討する必要があります。また、ログのローテーションは高度に構成できるため、ローテーション構成を変更したいだけかもしれません。また、その目的のために別の場所に送信されたログから必要な情報を取得し、回転ログをそのままにしておくことも検討してください...

また、オペレーティング システム/ログ ローテーション構成システムによっては、オペレーティング システムでローテーションをオフにするだけで、コードを気にする必要がなくなる可能性があります。

于 2010-12-21T05:43:26.300 に答える