このようなものを使用する:
try:
# Something...
except Exception as excep:
logger = logging.getLogger("component")
logger.warning("something raised an exception: " + excep)
logger.info("something raised an exception: " + excep)
私の特別なケースではエラーレベルの原因ではなく、エラーではありません。
ロギングドキュメント から:
kwargs
には、_exc_info
_、_stack_info
_、およびextra
の3つのキーワード引数があります。_
exc_info
_がfalseと評価されない場合、例外情報がログメッセージに追加されます。例外タプル(sys.exc_info()
によって返される形式)または例外インスタンスが提供されている場合は、それが使用されます。それ以外の場合は、sys.exc_info()
が呼び出されて、例外情報を取得します。
そうする:
_logger.warning("something raised an exception:", exc_info=True)
_
これが機能するものです(python2.6.5)。
logger.critical("caught exception, traceback =", exc_info=True)
あなたはこれを試すことができます:
from logging import getLogger
logger = getLogger('warning')
try:
# Somethings that is wrong.
except Exception as exp:
logger.warning("something raised an exception: " , exc_info=True)
logger.warning("something raised an exception: {}".format(exp)) # another way