2012-04-19 16 views
2

私はlogrotateを使用して、マルチプロセスのPythonサービスのログをローテーションしようとしています。次のどの組み合わせが一般的に使用されていますか(正しいものと安全なもの)?Pythonログ - logrotateオプション

  • WatchedFileHandler + logrotateを持つcopytruncateオプション

オプション-1とオプション

OR

  • のFileHandler +のlogrotateを作成OpenStackの新星と一目プロジェクトで使用されているように見えます。私はオプション2が使用されているのを見ていません。オプション-2は期待どおりに機能しますか?マルチプロセスアプリケーションでこれらのアプローチを使用すると、何らかの欠点がありますか?

  • +0

    Re。ファイルを共有する複数のプロセス - 詳細については、ドキュメントを参照してください。http://docs.python.org/howto/logging-cookbook.html#logging-to-a-single-file-from-multiple-processes - あなたlogrotateを使用すると、予期しない動作につながる可能性があります。 –

    答えて

    0

    私はPythonの独自のログローテーションを使用して最適な統合を行うことをお勧めします。唯一の欠点は、詳細を設定する追加の場所があることです。

    +0

    RotatingFileHandlerは、同じファイルを共有する複数のプロセスでは動作しません。私はSocketFileHandlerやSyslogFileHandlerのようなネットワークロガーを使いたくありません。 – Anoop

    2

    WatchedFileHandlerは、具体的にはlogrotateのような外部回転ツールで使用するために用意されていますので、使用することをお勧めします(オプション1)。なぜオプション2が必要だと思いますか?

    各プロセスが独自のログに書き込む複数プロセス環境では、問題はありません。ただし、プロセスはログファイルを共有するべきではありません。

    +0

    オプション2に関しては、私はこれらのアプローチの長所と短所(特にコピー・トランジション)を理解しようとしていました。同じログファイルを共有する複数のプロセスで発生する可能性のある問題は何ですか?同じレディスの複数のインスタンスが同じボックスで実行されるようなレディスのようなサービスでは、このアプローチを使用しませんか? (私が間違っている場合は私を修正してください) – Anoop

    関連する問題