创建按日期滚动的文件处理程序,每天生成新文件,当日志文件达到10M的时候,重新生成,并且原有的保存

对于按日期滚动的文件处理程序,可以使用 TimedRotatingFileHandler 类。这类处理程序会在指定的时间间隔创建新的日志文件。下面是一个示例:

import logging
from logging.handlers import TimedRotatingFileHandler

# 创建 logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

# 创建按日期滚动的文件处理程序,每天生成新文件
handler = TimedRotatingFileHandler('my_log_daily.log', when='midnight', interval=1, backupCount=5)

# 配置日志格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# 将处理程序添加到日志记录器
logger.addHandler(handler)

# 记录日志
logger.info('This is a log message')

# 关闭 logger(可选)
logger.removeHandler(handler)

在上面的例子中:

  • 'my_log_daily.log' 是日志文件的基础名称。
  • when='midnight' 表示每天午夜生成一个新的日志文件。
  • interval=1 表示每天生成一个新文件。
  • backupCount=5 表示保留最近的 5 个日志文件备份。

当日志文件达到一定大小时重新生成并保存,可以使用 maxBytes 参数,这个参数设置文件的最大字节数。当日志文件大小超过这个值时,将会生成新的日志文件。

handler = TimedRotatingFileHandler('my_log_daily.log', when='midnight', interval=1, backupCount=5, encoding='utf-8')
handler.addFilter(logging.Filter("my_logger")) # 添加过滤器
handler.setLevel(logging.DEBUG) # 设置级别
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) # 设置格式
handler.setDelay(True) # 设置为True,将延迟初始化。直到运行`logger.debug`时,日志才会初始化。

logger.addHandler(handler)
logger.debug("这是一条 debug 级别的日志")

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值