質問にこの見出しを付けるのは嫌いですが、実際には何が起こっているのかわかりません。
ロギングモジュールを使用したい別のプロジェクトを行っていました。コードはいくつかのファイルに分散されており、個別のファイル用に個別のロガー オブジェクトを作成する代わりに、コンテンツを含む logs.py を作成することを考えました
import sys, logging
class Logger:
def __init__(self):
formatter = logging.Formatter('%(filename)s:%(lineno)s %(levelname)s:%(message)s')
stdout_handler = logging.StreamHandler(sys.stdout)
stdout_handler.setFormatter(formatter)
self.logger=logging.getLogger('')
self.logger.addHandler(stdout_handler)
self.logger.setLevel(logging.DEBUG)
def debug(self, message):
self.logger.debug(message)
このクラスを(別のファイルで)使用します。
import logs
b = logs.Logger()
b.debug("Hi from a.py")
- ここで質問するために、問題全体を取り除きました。現在、a.py、b.py、main.py の 3 つのファイルがあります。3 つのファイルはすべて、logs.Logger クラスをインスタンス化し、デバッグ メッセージを出力します。
- a.py & b.pyは「ログ」をインポートし、デバッグ メッセージを出力します。
- main.pyインポート ログ、a & b ; 独自のデバッグ メッセージを出力します。
ファイルの内容は次のとおりです: http://i.imgur.com/XoKVf.png
b.py からのデバッグ メッセージが 2 回出力され、main.py から 3 回出力されるのはなぜですか?