2017-12-01 14 views
0

ヘルパースクリプトを実行するDjango Webアプリケーションがあります。これらのスクリプトはそれぞれ独自のログを書き込みます。私はスクリプトがお互いにログを書いていることに気付いています。これらのスクリプトは、別々のユーザー/セッションによって起動されます。どうしたの?ここで 複数のログファイルにPythonログを書き込む

import logging 
    logging.basicConfig(format='%(asctime)s %(message)s',filename='/var/logs/scriptA.log',level=logging.DEBUG) 

    logging.info("INFO: test log from scriptA")) 

scriptBに同じ誰かが、それはscriptA.log代わりのscriptB.logに書き込み、scriptBを実行しますと言うことは

ログが作成されると思われるのScripta内ロガーの実装です共有グローバルモジュール。どのように私はこれを停止することができます

EDIT:ここでのほとんどのソリューションは、同じクラス内の2つの別々のログ用です。私の問題は、別々のスクリプト/クラス同士の書き込みです。ログ

答えて

1

はい、Pythonのロギングモジュールはグローバルモジュールです。私は前に同じ問題に走った。私はこのコードを使って各モジュール/クラスのログを分離しました。

これで、クラスにself.logを使用でき、他のモジュールのロギングを妨げません。 run_one関数は、関数をインポートするときに1回だけ実行されることを保証します。それがあなたを助けることを願ってください。

関連する問題