Python:logging で exc_info をデフォルトで True にする

スタックトレースを出力するには exc_info を True にするが、毎回引数に指定はしたくない。
そんなときの対応方法のメモです。

スタックトレースが欲しいのは error と critical かと思いますが、その辺りはお好みで。
functools.partial を使ってデフォルトの値を変えて使います。

import logging
from functools import partial

logging.basicConfig(level=logging.DEBUG)

logger = logging.getLogger("hoge")
logger.error = partial(logger.error, exc_info=True)
logger.critical = partial(logger.critical, exc_info=True)

try:
    raise Exception("例外発生")

except Exception as e:
    logger.error("エラーメッセージ")
Docker Desktop for Windows/Macでつくるクリーンな開発環境構築入門(Python版) (Amazon)

コメント