通过TimedRotatingFileHandler按时间切割日志
线上跑了一个定时脚本,每天生成的日志文件都写在了一个文件中。但是日志信息不可能输出到单一的一个文件中。
原因有二:1.日志文件越来越大会影响系统的性能。2.日志文件格式不够清晰,比如我想看今天的日志,不太方便找到的今天的日志信息(即使对日志输出做了时间提示)
通过设置 TimedRotatingFileHandler 进行日志按周(W)、天(D)、时(H)、分(M)、秒(S)切割。
先看一个简单例子:
import time
import logging
import os
from logging import handlers
def _logging(**kwargs):
level = kwargs.pop('level', None)
filename = kwargs.pop('filename', None)
datefmt = kwargs.pop('datefmt', None)
format = kwargs.pop('format', None)
if level is None:
level = logging.DEBUG
if filename is None:
filename = 'default.log'
if datefmt is None:
datefmt = '%Y-%m-%d %H:%M:%S'
if format is None:
format = '%(asctime)s [%(module)s] %(levelname)s [%(lineno)d] %(message)s'
log = logging.getLogger(filename)
format_str = logging.Formatter(format, datefmt)
# backupCount 保存日志的数量,过期自动删除
Python TimedRotatingFileHandler日志切割实践

本文介绍了如何使用Python的TimedRotatingFileHandler模块按时间切割日志,以解决日志文件过大和查找不便的问题。示例展示了按周、天、时、分、秒切割日志的配置,并讨论了日志文件格式和自动删除策略的实现。
最低0.47元/天 解锁文章
287

被折叠的 条评论
为什么被折叠?



