Python中日志文件自动切换
参考官方文档:https://docs.python.org/2.6/library/logging.html#timedrotatingfilehandler
一、当日志文件达到指定大小,切换新的文件记录日志——RotatingFileHandler
- 该handler默认使用
a
的模式写入日志 maxBytes
和backupCount
必须配合使用,否则不会切换新文件
class logging.RotatingFileHandler(filename[, mode[, maxBytes[, backupCount[, encoding[, delay]]]]])
# maxBytes:控制单个日志文件的大小,单位是字节(B),也就是当单个文件大小超过这个数值时,就创建一个新的文件。
# backupCount:用于控制日志文件的数量,如果创建的日志文件数量多于这个数值,就删除最老的, 将通过将扩展名“.1”、“.2”等附加到文件名来保存旧的日志文件
例子:
- 该例子设置日志文件上限为100B,保留5个老的日志文件
import logging
from logging.handlers import RotatingFileHandler
logHandler = RotatingFileHandler("logfile", maxBytes=100, backupCount=5)
logFormatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
logHandler.setFormatter(logFormatter)
logger = logging.getLogger('MyLogger')
logger.addHandler(logHandler)
logger.setLevel(logging.INFO)
while True:
logger.info(str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())))
time.sleep(1)
二、当到达指定时间,切换新的文件记录日志——TimedRotatingFileHandler
class logging.TimedRotatingFileHandler(filename[, when[, interval[, backupCount[, encoding[, delay[, utc]]]]]])
# when:什么时候切换到一个新的文件记录日志
# backupCount:用于控制日志文件的数量,如果创建的日志文件数量多于这个数值,就删除最老的,默认是0,不会自动删除
when可选列表:
Value | Type of interval |
---|---|
S |
等待1秒切换到一个新日志文件 |
M |
等待1分钟切换到一个新日志文件 |
H |
等待1小时切换到一个新日志文件 |
D |
等待1天切换到一个新日志文件 |
W |
等待1星期切换到一个新日志文件 (0=Monday) |
midnight |
每天0点切换到新的日志文件 |
例如:
- 该例子指定等待1分钟切换到一个新的文件记录日志
import logging
from logging.handlers import TimedRotatingFileHandler
logHandler = TimedRotatingFileHandler("logfile", when="M")
logFormatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
logHandler.setFormatter(logFormatter)
logger = logging.getLogger('MyLogger')
logger.addHandler(logHandler)
logger.setLevel(logging.INFO)
while True:
logger.info(str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())))
time.sleep(1)
博客内容仅供参考,部分参考他人优秀博文,仅供学习使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2020-08-31 坑(八)—— LayUI框架中append新的元素的问题
2020-08-31 docker(三)—— 避免一直输入sudo