2017-10-28 8 views
1

は、私は、Python 3このように、ロギングハンドラを追加しようとしています:私のロギングがPython 3で動作しないのはなぜですか?

$ python3 
Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import logging 
>>> 
>>> logger = logging.getLogger() 
>>> handler = logging.StreamHandler() 
>>> handler.setLevel(logging.INFO) 
>>> logger.addHandler(handler) 
>>> 
>>> logging.info("my info") 
>>> logging.warning("my warning") 
my warning 

は、私がINFOとしてログレベルを指定しました。 logging.info("my info")が何も出力しないのはなぜですか?

+0

あなただけの単一ハンドラにログイン欠けている場合は、[ 'logging.basicConfig'](https://docs.python.org/3/libraryを使用することができます/logging.html#logging.basicConfig) – Holloway

答えて

4

needを設定すると、loggerレバーも設定されます。

import logging 

logger = logging.getLogger() 
# here 
logger.setLevel(logging.INFO) 
handler = logging.StreamHandler() 
handler.setLevel(logging.INFO) 
logger.addHandler(handler) 

出力:

>>> logging.info("my info") 
my info 
>>> logging.warning("my warning") 
my warning 
2

ロガーにはレベルとハンドラがあります。 default levelは警告ですので、情報は無視されます。

例を機能させるには、logger.setLevel(logging.INFO)を含めます。

関連する問題