1. ホーム
  2. パイソン

[解決済み】Pythonのエラーをデバッグ情報とともにログに記録する方法は?

2022-03-23 02:28:58

質問

Python の例外メッセージをログファイルに出力するのに logging.error :

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

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

解決方法を教えてください。

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

パウロ・チェケ 注意:Python 3では logging.exception メソッドのすぐ内側にある except の部分です。もしこのメソッドを任意の場所で呼び出すと、奇妙な例外が発生することがあります。それについてはドキュメントで警告しています。