python logger 按时间段滚动

import logging

import logging, logging.handlers
import time
logging.getLogger().setLevel(logging.DEBUG)
'''
TimedRotatingFileHandler构造函数声明
class logging.handlers.TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False, atTime=None)
filename    日志文件名前缀
when        日志名变更时间单位
    'S' Seconds
    'M' Minutes
    'H' Hours
    'D' Days
    'W0'-'W6' Weekday (0=Monday)
    'midnight' Roll over at midnight
interval    间隔时间,是指等待N个when单位的时间后,自动重建文件
backupCount 保留日志最大文件数,超过限制,删除最先创建的文件;默认值0,表示不限制。
delay       延迟文件创建,直到第一次调用emit()方法创建日志文件
atTime      在指定的时间(datetime.time格式)创建日志文件。
'''

def test_TimedRotatingFileHandler():
    # 定义日志输出格式
    fmt_str = '%(asctime)s[level-%(levelname)s][%(name)s]:%(message)s'
    # 初始化
    logging.basicConfig()

    # 创建TimedRotatingFileHandler处理对象
    # 间隔5(S)创建新的名称为myLog%Y%m%d_%H%M%S.log的文件,并一直占用myLog文件。
    fileshandle = logging.handlers.TimedRotatingFileHandler('./log/heidehan.log', when='H', interval=1, backupCount=100)
    # 设置日志文件后缀,以当前时间作为日志文件后缀名。
    fileshandle.suffix = "%Y%m%d_%H.log"
    # 设置日志输出级别和格式
    fileshandle.setLevel(logging.INFO)
    formatter = logging.Formatter(fmt_str)
    fileshandle.setFormatter(formatter)
    # 添加到日志处理对象集合
    logging.getLogger('').addHandler(fileshandle)
    # logging.getLogger('').addHandler(fileshandle)

 

 

使用时需先调用 test_TimedRotatingFileHandler()

posted on 2022-11-24 17:05  郭小四  阅读(139)  评论(0编辑  收藏  举报