news 2026/9/5 22:09:04

python 日志自动最大10mb的写法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python 日志自动最大10mb的写法
#===============改进成最大大小的日志: import logging as logging1 import os import os.path import logging as logging1 class SizeLimitedFileHandler(logging1.FileHandler): """ 自定义日志处理器:当日志文件超过指定大小,自动清空后重新写入 """ def __init__(self, filename, max_size=10*1024*1024, mode='a+', encoding='utf-8'): """ :param filename: 日志文件名 :param max_size: 日志文件最大字节数(默认10MB) :param mode: 写入模式 :param encoding: 编码格式 """ self.max_size = max_size super().__init__(filename, mode=mode, encoding=encoding) def emit(self, record): """重写emit方法,写入前检查文件大小""" # 检查文件是否存在且超过最大大小 if os.path.exists(self.baseFilename) and os.path.getsize(self.baseFilename) > self.max_size: # 清空文件内容(以w模式打开再关闭) with open(self.baseFilename, 'w', encoding=self.encoding): pass # 重置文件指针 self.stream = self._open() # 执行原始的日志写入逻辑 super().emit(record) # 配置日志(自动清空版) def setup_clear_logger(max_size=10*1024*1024): # 默认10MB """ 配置日志:超过指定大小自动清空 :param max_size: 日志文件最大字节数(例如:10*1024*1024 = 10MB) """ # 1. 创建日志器 logger = logging1.getLogger() logger.setLevel(logging1.INFO) logger.handlers.clear() # 清空默认处理器 # 2. 配置日志格式(保留你的原有格式) formatter = logging1.Formatter( '%(asctime)s %(name)s [%(pathname)s line:%(lineno)d] %(levelname)s %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) # 3. 使用自定义的大小限制处理器(自动清空) file_handler = SizeLimitedFileHandler( filename='log.txt', max_size=max_size, # 设置最大大小 mode='a+', encoding='utf-8' ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) # 4. 禁用指定模块的INFO日志 logging1.getLogger('httpx').setLevel(logging1.WARNING) logging1.getLogger('openai').setLevel(logging1.WARNING) # 初始化日志(设置最大大小为10MB,超过则清空) # 如果想按行数估算:1万行≈1MB(按每行100字节),则10万行≈10MB setup_clear_logger(max_size=10*1024*1024) # 10MB logging1.info('这是一条info日志')
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 2:53:38

【Dubbo服务找不到?从抓耳挠腮到一键解决,全流程干货!】

作为一名天天和BUG贴贴的程序员,排查问题就像拆盲盒——你永远不知道下一个坑是逻辑bug、环境搞怪,还是同事偷偷改的配置让你当场破防。而最让人崩溃的,当属Dubbo服务找不到的坑!就像你约了朋友吃饭,到地方发现人没影&…

作者头像 李华
网站建设 2026/9/3 0:04:01

【netty】EventLoop

eventloop 可以处理channel上 accept、read、write等io事件1.单线程执行器2.维护了一个selector如果传入线程数,则使用传入的线程数如果没有传入线程数,则获取配置的线程数 与 系统的cpu核数*2 比大小防。 止存在0线程的情况,所以与1比大小&a…

作者头像 李华
网站建设 2026/9/3 2:54:36

GLM-4.7-Flash参数详解:flash-attn2启用条件、量化选项与推理精度权衡

GLM-4.7-Flash参数详解:flash-attn2启用条件、量化选项与推理精度权衡 1. 模型基础认知:不只是“更快的GLM-4” 你可能已经听说过GLM-4系列,但GLM-4.7-Flash不是简单的小版本迭代。它是一次面向实际部署场景的深度重构——目标很明确&#…

作者头像 李华
网站建设 2026/9/5 5:03:13

GLM-4-9B-Chat-1M代码补全:vLLM支持的IDE插件开发

GLM-4-9B-Chat-1M代码补全:vLLM支持的IDE插件开发 1. 引言 作为一名长期在AI和智能硬件领域工作的工程师,我经常需要处理复杂的代码项目。最近在开发一个大型Python项目时,遇到了一个典型问题:当代码文件超过几千行后&#xff0…

作者头像 李华