1. 程式人生 > 程式設計 >Python logging日誌庫空間不足問題解決

Python logging日誌庫空間不足問題解決

專案中使用的日誌庫是使用python官方庫logging封裝的,但是居然一直麼有設定日誌自動滾動,經常會受到告警說哪臺機器磁碟空間又滿,清理一下,於是研究一下,解決這個問題。

參考:https://docs.python.org/2/library/logging.handlers.html

TimedRotatingFileHandler有三個引數很關鍵

when、interval、backupCount

when指定滾動依據的單位,可選的有天、小時、分鐘、秒等;interval指定間隔多少個when之後滾動日誌;而backupCount指定最多保留多少個日誌。

所以結合這三個引數就可以實現我要的目的了,讓日誌隨時間滾動,同時限制總的日誌個數。

Python logging日誌庫空間不足問題解決

demo:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import os
import time
import logging
import logging.handlers

if __name__ == '__main__':
  if len(sys.argv) != 2:
    print('Usage:%s log_name' % (sys.argv[0]))
    sys.exit(0)

  log_dir = './log'
  log_name = sys.argv[1]
  logger = logging.getLogger(log_name)
  logger.setLevel(logging.DEBUG)

  # init handler
  formatter = logging.Formatter('%(message)s')
  file_time_handler = logging.handlers.TimedRotatingFileHandler(
      os.path.join(log_dir,log_name),"M",1,5)
  file_time_handler.setFormatter(formatter)
  file_time_handler.setLevel(logging.DEBUG)
  logger.addHandler(file_time_handler)

  while True:
    time.sleep(1)
    logger.info('Hello world %s' % (time.strftime("%Y/%M/%d-%H:%m:%S")))

結果:

Python logging日誌庫空間不足問題解決

可以看到最上面的一條記錄記錄就被滾掉了。

666

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。