2016-05-19 12 views
0

は、作品以下のコードのこのビットは予想通り:logging.infoを使用して例外をログに記録できないのはなぜですか?例えば

import logging 
import sys 

def infologAllUncaught(exc_type, exc_value, exc_traceback): 
    logging.error("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback)) 

sys.excepthook = infologAllUncaught 

raise Exception("WOAH THERE!") 

を返す:

ERROR:root:Uncaught exception 
Traceback (most recent call last): 
    File "C:\dev\proj\cedu_ui\product\trunk\test\tools\genie\genie\logging_test2.py", line 9, in <module> 
    raise Exception("WOAH THERE!") 
Exception: WOAH THERE! 

しかし、コードのこのビットは何も返しません。

import logging 
import sys 

def infologAllUncaught(exc_type, exc_value, exc_traceback): 
    logging.info("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback)) 

sys.excepthook = infologAllUncaught 

raise Exception("WOAH THERE!") 

logging.exceptionを除くすべてのロギングメソッドは、APIで同じ用法を持っているので、これらは異なる結果を得ている理由私はわからないように思えます。

+1

あなたのルートロガーは情報レベルでログするように設定されていますか? –

+0

Ref https://docs.python.org/2/howto/logging.html#when-to-use-logging "デフォルトレベルは警告です..." –

答えて

2

INFOレベルでログするようにロガーを設定する必要があります。デフォルトは警告のみです。

参考:docs.python.org/2/howto/logging.html#when-to-use-logging

を「既定のレベルが...警告された」あなたが好きなものを使用して見たいかもしれませんこのhttps://docs.python.org/2/howto/logging.html#logging-to-a-fileは初期ロガー設定を行います。

関連する問題