私は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に設定しますか?
ありがとうございました。