2017-12-07 7 views
1

複数のコンピュータ(500)からtimestampsという単一のファイルにログをダンプしていますが、各エントリは4KB未満です。 Pythonのロギングモジュールは明らかにlockingを処理し、Thread-Safetyを保証します。ここにあなたのフィードバックのためのuser2357112 @https://docs.python.org/2/library/logging.html#thread-safetyロギングモジュールのスレッドの安全性、ネットワーク上のスレッドセーフなのでしょうか?

おかげで、いくつかのより多くの情報です:

あなたは、ネットワーク接続ストレージのいくつかの並べ替えを使用していますか?

ストレージは、書き込み可能な書き込み可能なlogfile.txtを共有するネットワークディスクです。

コンピュータはローカルにログを記録し、ログファイルを何らかの形で同期していますか?終わる別のコンピュータからのログレコードは

コンピュータがローカルでログインしていないが、それらが終了しているものが、彼らは

どう

を共有している logfile.txtの終わりに書き込むために「ロガー」を使用しています同じファイルにありますか?

コンピュータのすべては、だから何が単一のファイルに間違った書き込みを行くことができるlogfile.txt

に追加されますか?それとも安全に使用できますか?

+0

複数のコンピュータのログを同じファイルに書き込むことはどういう意味ですか?私たちはあなたのネットワークがどのように設定されているか、これらのコンピュータがどのようにファイルに書き込んでいるかについて多くのことを知る必要があります。 – user2357112

+0

Pythonの 'Logging'モジュールを使って書いていますか?私もそれについてのリンクを掲載しました。ネットワークはイントラネットにあり、各マシンは2時間ごとにログを書き込んでいるはずです...一般的に大きな負荷はありませんが、競合状態がまだ現れる可能性がありますか? – user1767754

+0

何らかの種類のネットワーク接続ストレージを使用していますか?中央コンピュータがネットワークからログメッセージを受信して​​ログを記録していますか?コンピュータがローカルにログを記録し、ログファイルを何とか同期していますか? *異なるコンピュータのログレコードが同じファイルにどのようになっているのですか?*単に 'logging'モジュールを使っていると言っても、それは私たちには分かりません。 – user2357112

答えて

1

だから、1つのファイルに誤って書き込むことができますか?それとも安全に使用できますか?

最高でも、ファイルアクセスを処理するドライバは、ファイルを1つのプロセス/ユーザーに排他的にロックします。最悪の場合、あなたが追加しているからといって、それが逐次的になるわけではありません。たとえば、あなたはこのように終わることができる行をマングルしました。

おそらくもっと良い/より安全な方法は/myNas/logs/MMDDYYHH/workerPID.logのようなもので、毎日のクリーナースクリプトでこれらのすべてをmaster.logファイルにマージすることがあります。中間処理ステップでは、各ログを読み込んで:memory:sqliteデータベースに格納し、日付を&の時間で並べ替えて、master.logにダンプします。

また、リアルタイムのログ監視が必要な場合、Windowsにはwatchのようなツールがあり、ディスクに書き込まれるたびにそのファイルを追跡できると思います。

関連する問題