BLOGTIMES
2018/09/20

Python の logging で毎日ログをローテートするには

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

Python の logging モジュールをつかってログを取得するときに、そのまま運用に載せたりするとログが肥大化して困ることがあります。
これを防ぐためには日次などでローテートする必要が出てきますが、そのやり方を調べてみたのでメモ。

特に難しいことは必要がなく、 handler として TimedRotatingFileHandler*1 を指定してやるだけで OK でした。
実際にプログラムとして記述すると以下のようの感じになるかと思います。

logtest.py

from logging import getLogger, basicConfig, Formatter, INFO from logging.handlers import TimedRotatingFileHandler from os.path import splitext, basename from time import sleep base, ext = splitext( basename(__file__) ) basicConfig( level=INFO, format='%(asctime)s %(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S', handlers=[TimedRotatingFileHandler(('logs/%s.log' % base), when = 'D')], ) logger = getLogger(__name__) while True: logger.info("hoge") sleep(1)

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

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

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

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