BLOGTIMES
2020/02/21

Python で Exception の情報をログに吐き出す

  python 
このエントリーをはてなブックマークに追加

Python で Exception の情報をログに吐き出す方法が分からなくていろいろと試行錯誤したのでメモ。

とりあえず logging *1 を使う場合には、引数に exc_info=True をつけてやれば、ログに Exception が発生した位置と Stack Trace 、Exception の内容が記録されるようになるようです。

サンプルとしてはこんな感じでしょうか。

from logging import getLogger, basicConfig, Formatter, DEBUG, INFO from logging.handlers import TimedRotatingFileHandler basicConfig( level=INFO, format='%(asctime)s %(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S', handlers=[TimedRotatingFileHandler('log.txt', when = 'midnight')] ) logger = getLogger(__name__) try: raise ValueError("error!") except: logger.info("Exception caught!", exc_info=True)

上記をコンソールで実行した場合、以下のような感じでログを残すことができます。

2020-02-21 00:20:31 INFO Exception caught! Traceback (most recent call last): File "<stdin>", line 2, in <module> ValueError: error!

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11560
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン