デバッグ情報とともに Python エラーをログに記録するにはどうすればいいですか? 質問する

デバッグ情報とともに Python エラーをログに記録するにはどうすればいいですか? 質問する

Python 例外メッセージをログ ファイルに出力していますlogging.error:

import logging
try:
    1/0
except ZeroDivisionError as e:
    logging.error(e)  # ERROR:root:division by zero

例外文字列だけでなく、例外とそれを生成したコードに関するより詳細な情報を印刷することは可能ですか? 行番号やスタック トレースのようなものがあれば便利です。

ベストアンサー1

logger.exceptionエラーメッセージとともにスタックトレースを出力します。

例えば:

import logging
try:
    1/0
except ZeroDivisionError:
    logging.exception("message")

出力:

ERROR:root:message
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
ZeroDivisionError: integer division or modulo by zero

@パウロ・チェクlogging.exception「Python 3 では、メソッドをパーツ内で呼び出す必要があることに注意してくださいexcept。このメソッドを任意の場所で呼び出すと、奇妙な例外が発生する可能性があります。ドキュメントではそのことについて警告しています。」

おすすめ記事