FIFOを介してログに記録し、ファイルにリダイレクトしますか?
各トランザクションをログに記録する必要があるアプリケーションがあります。クラッシュに至るまでに何が起こったかを記録する必要があるため、すべてのログメッセージがフラッシュされます。同僚と私は、ログメッセージがプロセスを離れたことを保証しながら、バッファリングのパフォーマンス効果を達成する方法に興味を持っていました。 私たちが思いついたのは: アプリケーションが書き込み可能なFIFOを作成し、 経由でそのFIFOの内容を通常のファイルにリダイレクトしますcat。 つまり、通常は次のとおりでした。 app --logfile logfile.txt 今でしょ: mkfifo logfifo cat logfifo &> logfile.txt & app --logfile logfifo このアプローチに落とし穴はありますか?テスト時に機能しましたが、元のアプリケーションがクラッシュした場合でも、メッセージがリダイレクトファイルに到達することを確実に確認したいと考えています。 (アプリケーションのソースコードがないため、プログラミングソリューションは問題外です。また、アプリケーションはに書き込みを行わないstdoutため、別のコマンドに直接パイプすることは問題外です。そのsyslogため、可能性はありません。) 更新:バウンティを追加しました。受け入れ答えはなりません伴うlogger単純な理由loggerではない私が尋ねたもの。元の質問が述べているように、私はFIFOを使用する上での問題点のみを探しています。