2017-01-17 10 views
1

Tomcatにデプロイされたアプリケーションはlog4jを使用してログファイルを書き込みます。そのファイルを削除すると、アプリケーションはそれを再作成しません。手動で再作成しようとしましたが、空のままです。アプリケーションからではなくログファイルを削除する方法はありますか?同じ名前で同じパスに新しいファイルを作成し、アプリケーションで書き込むことはできますか?Log4jはログファイルを削除した後で再作成しません

+1

なぜこれが必要ですか? – Jens

+0

@Jensログファイルが2日以内に書き出されない場合、ログファイルを削除する別のプログラムだからです。 – abaraza

+0

これは意味ですか? – Jens

答えて

0

ログファイルを削除する方法はありますか(アプリケーションからではありません)、同じ名前の同じパスに新しいファイルを作成し、アプリケーションで書き込むことはできますか?

いいえ。ロギングを再開するには、アプリケーション自体を取得する必要があります。

問題は、log4jアペンダーがまだ削除されたファイルのハンドルを持っていて、それが削除されたことに気づかずに書き続けることです。

より良いアプローチは、アプリケーション自体がログファイルを「回転」させることです。いくつかのアイデアのためにlog4j Appenderインターフェースを実装しているclassesを見てください。

+0

私はそれでも私はまだ希望を持っていますとにかくありがとうございます。 – abaraza

+0

まあ、ある可能性があります。たとえば、書き込みを試みる前にログファイルが存在するかどうかをチェックするカスタムを追加することができます。しかし、それは醜く非効率的で...アプリケーションを動作させるために変更する必要があります。 –

関連する問題