#===============改进成最大大小的日志: 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日志')python 日志自动最大10mb的写法
张小明
前端开发工程师
iPhone17大热,网传有国产手机品牌的旗舰手机最高跌超三成
由于苹果的iPhone17卖得实在太好,一些国产手机品牌总是喜欢对标iPhone17,眼见着在整体销量方面落后太多,于是他们不断缩短时间周期,例如从季度缩短到月份,甚至会时不时拿周销量来证明自己并未必iPhone17差太多…
CANN hixl 在单机多卡场景下的 PCIe 带宽优化策略
相关链接: CANN 组织主页:https://atomgit.com/cannhixl 仓库地址:https://atomgit.com/cann/hixl 前言 在单机多设备(Multi-Device)AI 训练与推理系统中,设备间的数据交换常通过 PCIe 总线完成。然而&am…
SemaphoreCountDownlatchCyclicBarrier源码分析
一、CountDownLatch:闭锁机制 1.1 基本原理与核心逻辑 CountDownLatch 让一个或多个线程等待其他线程执行完成后再执行。在创建 CountDownLatch 对象时,必须指定线程数 count,每当一个线程执行完成调用 countDown()方法,线程数 co…
5分钟部署Whisper语音识别:零基础搭建多语言转录服务
5分钟部署Whisper语音识别:零基础搭建多语言转录服务 引言:语音识别原来这么简单 你有没有遇到过这样的场景?会议录音需要整理成文字,外语视频需要翻译字幕,或者想给音频内容添加文字说明。传统方法要么手动打字费时…
VMD-SE-BiLSTM+Transformer多变量时序预测,MATLAB代码
一、研究背景 该模型针对复杂非线性时间序列预测问题,特别是具有多尺度、非平稳特性的时序数据。传统单一模型难以同时捕捉时序数据中的低频趋势和高频波动特征,因此采用分解-重构-混合建模 的策略,结合信号处理与深度学习技术提升预测精度。…
局域网中两台win电脑传输文件
文章目录1.方案一:Python 一行命令 HTTP 服务 (最接近 Linux 体验)1. 在发送方电脑 A 上操作2. 在接收方电脑 B 上操作2.方案二:Windows 共享文件夹 (适合频繁传输)3. Linux电脑向Win电脑传输文件总结✨✨✨学习的道路很枯燥,希望我们能并肩走…