2012-01-26 2 views
2

Python 2.7では、印刷するのではなくコンソールにログを記録しようとしています。コンソールにログを取得しようとしています

私はこのメソッドを記述し、最初から呼び出します。私はsubsquent方法で

def set_up_logging(): 
    log = logging.getLogger() 
    ch = logging.StreamHandler() 
    ch.setLevel(logging.INFO) 
    log.addHandler(ch); 

... 
logging.info(">>do_nightlies()"); 

、それは動作しません。

アイデアありがとうございます。

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

答えて

3

ロガーとハンドラの両方に最低レベルがあります。ハンドラーのログレベルを設定しますが、ロガーのログレベルは設定しません。ロガーのレベルのデフォルト値はlogging.WARNINGなので、info()コールはハンドラに渡されません。

ほとんどで(あなたにもlogging.INFOにロガーのレベルを設定::

def set_up_logging(): 
    log = logging.getLogger() 
    log.setLevel(logging.INFO) 
    ch = logging.StreamHandler() 
    ch.setLevel(logging.INFO) 
    log.addHandler(ch) 
+0

+1をすることによってそれを修正することができ、あなたが実際にロガー*と*ハンドラの両方にレベルを設定する必要はありません症例)。必要なときにのみロガーとハンドラーに設定してください(ロガーのレベルが最初にチェックされ、ハンドラーのレベルが後であるため、レベルをロガーに適用することで不要な作業を省くことができます)。ハンドラのレベル設定は完全に有効ですが、それほど一般的ではありません。 –

関連する問題