2016-11-22 10 views
1

私はpython-coloredlogsのロガーインスタンスを設定する方法を誤解していると思います。それは私のコードで使用する他のライブラリまで素晴らしい作品、彼らのログメッセージは、ルートロガーによって出力を取得し、基本的に私はそれらを表示したくない:pythonの色付きログ(他のライブラリとの)設定の問題

2016-11-22 13:03:31 <hostname> <app>[66800] INFO some message 
2016-11-22 13:03:31 <hostname> requests.packages.urllib3.connectionpool[66800] INFO Starting new HTTP connection (1): <...> 

ソリューションAfaics coloredlogsのための特定のロガーを作成するべきですそれを設定して、それをcoloredlogs installメソッド(code/docstring)に渡してください。私はこれをしますが、colourlogは警告ログレベルにロックされているようです。

colorlogsのロガーインスタンスを正しく設定する方法を誤解している可能性があります。

python logging howto例を使用し、coloredlogsを追加:

import logging 

# create logger 
logger = logging.getLogger('simple_example') 
logger.setLevel(logging.DEBUG) 
ch = logging.StreamHandler() 
ch.setLevel(logging.DEBUG) 
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 
ch.setFormatter(formatter) 
logger.addHandler(ch) 

# test output 
logger.debug('debug message') 
logger.info('info message') 
logger.warn('warn message') 
logger.error('error message') 
logger.critical('critical message') 

import coloredlogs 
coloredlogs.install(level='DEBUG', logger=logger) 
logger.debug('debug message') 
logger.info('info message') 
logger.warn('warn message') 
logger.error('error message') 
logger.critical('critical message') 

出力:

2016-11-16 16:06:53,942 - simple_example - DEBUG - debug message 
2016-11-16 16:06:53,942 - simple_example - INFO - info message 
2016-11-16 16:06:53,942 - simple_example - WARNING - warn message 
2016-11-16 16:06:53,942 - simple_example - ERROR - error message 
2016-11-16 16:06:53,942 - simple_example - CRITICAL - critical message 
2016-11-16 16:06:53 <hostname> simple_example[63650] WARNING warn message 
2016-11-16 16:06:53 <hostname> simple_example[63650] ERROR error message 
2016-11-16 16:06:53 <hostname> simple_example[63650] CRITICAL critical message 

StreamHandlerのは正しくデバッグレベルのログを出力しますが、coloredlogsがインストールされた後にログレベルを警告に設定され、 a)ロガーレベルがデバッグに設定されていて、b)level='DEBUG'からcoloredlogs.installメソッドに渡されている場合でも、info/debugログは出力されません。

設定されたロガーをcolorlogsに渡すにはどうすればいいですか(他のライブラリがルートロガー経由でログするようにするには)、coloredlogsレベルをinfo/debugに設定しますか?

ありがとうございました。

答えて

2

you posted this questionは、Github発行のトラッカーcoloredlogsに直接表示されました。

ライブラリの作成者があなたに答えましたので、ここでこれを報告しています。

バージョン6.0以降に修正されたバグだったようです。

関連する問題