Python使用RotatingFileHandler实现日志自动切割

发布时间:2026/10/1 3:01:25

Python使用RotatingFileHandler实现日志自动切割 Python使用RotatingFileHandler实现日志自动切割程序运行时间长了以后日志文件可能不断增大不仅占用磁盘空间打开和检索也会越来越慢。Python自带的RotatingFileHandler可以按照文件大小自动切割日志并保留指定数量的历史文件。一、基本实现importloggingfromlogging.handlersimportRotatingFileHandler loggerlogging.getLogger(my_app)logger.setLevel(logging.INFO)handlerRotatingFileHandler(filenameapp.log,maxBytes5*1024*1024,backupCount5,encodingutf-8)formatterlogging.Formatter(%(asctime)s | %(levelname)s | %(message)s)handler.setFormatter(formatter)logger.addHandler(handler)logger.info(程序启动)logger.warning(这是一条警告日志)logger.error(这是一条错误日志)二、参数说明maxBytes表示单个日志文件允许的最大大小。示例中设置为5MB当app.log超过限制后程序会自动生成app.log app.log.1 app.log.2 app.log.3backupCount表示最多保留多少个历史日志文件。超过设定数量后最旧的日志会被自动删除。三、避免日志重复输出如果初始化代码被多次调用同一个处理器可能被重复添加导致每条日志输出多次。可以在添加前进行判断ifnotlogger.handlers:logger.addHandler(handler)完整写法importloggingfromlogging.handlersimportRotatingFileHandlerdefcreate_logger():loggerlogging.getLogger(my_app)logger.setLevel(logging.INFO)iflogger.handlers:returnlogger handlerRotatingFileHandler(app.log,maxBytes5*1024*1024,backupCount5,encodingutf-8)handler.setFormatter(logging.Formatter(%(asctime)s | %(levelname)s | %(filename)s:%(lineno)d | %(message)s))logger.addHandler(handler)returnlogger app_loggercreate_logger()app_logger.info(日志系统初始化完成)四、适用场景这种方式适合小型脚本、定时任务、爬虫和后台服务。对于高并发或多进程程序还需要考虑多个进程同时写入同一文件的问题。总结通过RotatingFileHandler可以在不安装第三方模块的情况下实现日志切割避免单个日志文件无限增长。合理设置文件大小和保留数量也能减少磁盘空间被日志占满的风险。
延伸阅读

更多相关文章

2026/10/1 3:01:25

行业动态:假期观察:药膳月饼走红,轻养生背后的“食”之有道:公开信息与可核验事实梳理

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

2026/10/1 3:01:25

十亿人用了十年的手机老按键,被悄悄删掉最后一扇逃生门

十亿人用了十年的手机老按键,被悄悄删掉最后一扇逃生门 如果你手里正拿着一部安卓手机,不妨现在长按一下电源键,或者从屏幕底部的两个角落往上一滑。 很多人的第一反应可能是愣一下:那个帮你定了好几年闹钟、查了好几年天气的Goog…

2026/10/1 3:01:25

用phpStudy在Windows上搭建bWAPP靶场:从下载到初始化完整指南

bWAPP这个靶场,玩Web安全的应该都不陌生。做渗透测试练习、复现OWASP Top 10漏洞、练Burp Suite和SQLMap的手感,它几乎是绕不开的一块磨刀石。但不少初学者卡在第一步:源码下载下来之后不知道往哪儿放,数据库连不上,页…

2026/10/1 7:46:37

操作系统内存管理大题手算指南:地址转换、页面置换与EAT计算

操作系统第三章的内存管理,是很多人复习到这一章时最容易卡壳的地方。前面进程调度那几章还能靠直觉蒙一蒙,到了内存管理,地址转换、页表计算、页面置换、有效访问时间,几乎每道大题都要求你拿起笔一步一步算,算错一步…

2026/10/1 7:46:37

智能体间通信实践指南:用 TaoToken 统一 Key 打通 A2A 调用链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 7:41:37

OpenRIG算力池化平台:低成本按需使用GPU,告别算力焦虑

很多人可能跟我一样,这几年被“算力焦虑”折腾得够呛。本地部署大模型吧,一张像样的显卡价格能顶一台低配车;用云厂商的高性能实例吧,按秒计费看着就肉疼;想薅点免费额度,又经常被排队和限流劝退。OpenRIG这…

2026/10/1 5:21:14

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/29 21:48:03

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 7:00:49

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑