Python:写入日志文件
python可以在执行时写入日志用于查找问题,这里提供一个类,在需要的时候就可以直接使用:
import logging from logging import handlers class Logger(object): level_relations = { 'debug':logging.DEBUG, 'info':logging.INFO, 'warning':logging.WARNING, 'error':logging.ERROR, 'crit':logging.CRITICAL } #日志关系映射 def __init__(self,filename,level='info',backCount=10,fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'): self.logger = logging.getLogger(filename) format_str = logging.Formatter(fmt) #设置日志格式 self.logger.setLevel(self.level_relations.get(level))#设置日志级别 sh = logging.StreamHandler() #往屏幕上输出 sh.setFormatter(format_str) #设置屏幕上显示的格式 self.logger.addHandler(sh) #把对象加到logger里 fh = handlers.RotatingFileHandler(filename=filename,maxBytes=10485760,backupCount=backCount) # 按照文件大小分割日志文件 fh.setLevel(self.level_relations.get(level)) fh.setFormatter(format_str) #设置文件里写入的格式 self.logger.addHandler(fh) if __name__ == '__main__': log = Logger('my_test.log',level='debug') log.logger.debug('------0. it is a debug ------') log.logger.info('------ 1. it is a test ------') log.logger.warning('------ 2. it is a warning ------') log.logger.error('------ 3. it is an error ------') log.logger.critical('------ 4. serious problem ------')
屏幕显示:
同样可以在文件夹下找到 my_test.log文件。
日志级别: debug --> info --> warning --> error --> critical。
日志级别 | 使用备注 |
---|---|
DEBUG |
详细信息,调试使用 |
INFO |
正常信息 |
WARNING |
警告信息 |
ERROR |
错误信息 |
CRITICAL |
问题很严重 |
注:
handlers.TimedRotatingFileHandler ---> 可以按时间分割日志文件
#
更多解释和说明可参考某大神博客:https://www.cnblogs.com/nancyzhu/p/8551506.html
分类:
python相关文档
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架