1

誰でもこれについて経験がありますか?

リモートマシンで何が起こっているのかわからないため、分散システムのログをPythonで統合するにはどうすればよいですか。

Python のビルトイン ロギングを調べていますが、分散システムのロギングに関する適切なドキュメントがないようです。

4

1 に答える 1

1

Python 2.xの公式ドキュメントから:

ロギングはスレッドセーフであり、1 つのプロセス内の複数のスレッドから 1 つのファイルへのロギングはサポートされていますが、複数のプロセスで 1 つのファイルへのアクセスをシリアル化する標準的な方法がないため、複数のプロセスから 1 つのファイルへのロギングはサポートされていません。 Python で処理します。複数のプロセスから 1 つのファイルにログを記録する必要がある場合、これを行う 1 つの方法は、すべてのプロセスが SocketHandler にログを記録し、ソケットから読み取ってファイルにログを記録するソケット サーバーを実装する別のプロセスを用意することです。(必要に応じて、既存のプロセスの 1 つにある 1 つのスレッドを専用にしてこの機能を実行することもできます。) このセクションでは、このアプローチについて詳しく説明し、アプリケーションに適応させるための開始点として使用できる作業ソケット レシーバーを含めます。独自のアプリケーション。

multiprocessing モジュールを含む最新バージョンの Python を使用している場合は、このモジュールの Lock クラスを使用してプロセスからファイルへのアクセスをシリアル化する独自のハンドラーを作成できます。既存の FileHandler とサブクラスは現在マルチプロセッシングを使用していませんが、将来的には使用する可能性があります。現在、マルチプロセッシング モジュールは、すべてのプラットフォームで機能するロック機能を提供していないことに注意してください ( http://bugs.python.org/issue3770を参照)。

于 2013-11-05T23:59:18.090 に答える