1
私は時にはファイルに書き込むプリント・ライターを持っています(ここでは「特定の数の指定されたイベントの後に定期的に」という意味です)。アプリケーションの終了時にプリント・フラッシュを書き込む
これらのイベントが少なすぎると、アプリケーションが終了するとログファイルが空になることがあります(Ctrl + C
)。
私は、もちろん、flush
のすべてのprintln
た後、それは私がようFile
を渡したい場合はとにかく作成することができる唯一の種類を非オートフラッシュPrintWriterを(持つの目的を台無しにしてしまう可能性がありコンストラクタ引数)。
JavaにはonApplicationKill
がありますか?アプリケーションが終了するとライターを一度フラッシュできますか?または、現在のスレッドが強制終了されたときに検出するものはありますか?あなたがシャットダウンフックを使用することができます
でそれを殺す場合にも動作するはずです([こちら]をご覧http://stackoverflow.com/questions/2975248/ java-how-to-handle-a-sigterm)! – ArcticLord