2016-04-26 13 views
0

だから私は同じモジュール内の別の出力にPythonで複数のロガーを作成

log = logging.getLogger('FirstLogger') 
plog = logging.getLogger('SecondLogger') 

同じモジュール内に複数のロガーを作成したいと私は別に、各ロガーを設定したいです。

だから、ログのFileHandlerがlogging.DEBUG以上を取る間に、logging.INFO以上を取るplog用のFileHandlerを追加しました。

私は、ロガーのインスタンスになりますinit_logger()関数は、だから私はFirstLoggerが、私はそれのために個別に作成されたファイルにログインしてログインする

def init_logger(logger, fmode, cmode) 

の設定を実行するために作成しましたDEBUGレベル。私はFileHandlerのために別のファイルを指定してinit_loggerに渡されているものに応じてレベルを設定init_loggerで

log = logging.getLogger('FirstLogger') 
init_logger(log,logging.DEBUG,logging.INFO) 

plog = logging.getLogger('SecondLogger') 
init_logger(plog,logging.INFO,logging.INFO) 

を行うだろう。

flog = logging.FileHandler(logfile) 
flog.setLevel(fmode) 
flog.setFormatter(...) 

console = logging.StreamHandler() 
console.setLevel(cmode) 
console.setFormatter(...) 

log.addhandler(flog) 
log.addHandler(console) 

私が持っている問題は、「ログ」DEBUGにINFOとのFileHandlerにコンソール・セット・レベルを持っているにもかかわらず、私はまだ唯一のファイルとコンソールの両方で情報を得ることです。私は何をしているのか、何が間違っているのか分かりません。

答えて

1

あなたはDEBUGにファイルハンドラのレベルを設定していますが、DEBUG

log.setLevel(min(cmode, fmode)) 
+0

おかげ@Pedruにロガー自体のレベルを設定しないでください。私は本当にロガー自体のレベルを設定することを忘れていました。 – pengwinsurf

+0

私は助けることができてうれしい=) – Pedru

関連する問題