Python logging 模块 捕获异常,并保存为 logging 文件
示例一:logging模块简单使用 basicConfig
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #!/usr/bin/python2.7 # -*- coding:utf-8 -*- """ @author: tz_zs """ import logging import time import traceback import sys logging.basicConfig(level = logging.DEBUG, format = 'asctime: %(asctime)s \n' # 时间 'filename_line: %(filename)s_[line:%(lineno)d] \n' # 文件名_行号 'level: %(levelname)s \n' # log级别 'message: %(message)s \n' , # log信息 datefmt = '%a, %d %b %Y %H:%M:%S' , filename = sys.path[ 1 ] + '/output/test_try_logging.log' , # sys.path[1]获取当前的工作路径 # stream=sys.stdout, filemode = 'w' ) # 如果模式为'a',则为续写(不会抹掉之前的log) i = 0 while i < 3 : i + = 1 time.sleep( 1 ) try : a = 1 / 0 except ZeroDivisionError, e: # traceback.format_exc()为详细情况 logging.debug( "%s____%s\n" "traceback.format_exc():____%s" % (ZeroDivisionError, e, traceback.format_exc())) continue except BaseException, e: logging.debug( "%s____%s" % (BaseException, e)) continue |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import logging class ToolLog( object ): @staticmethod def get_logger(filename): m_logger = logging.getLogger( "TzzsToolLog.get_logger" ) # Logger的名字,可以自定义,但最好是给它一个有意义的名字,方便后续的调试和维护。 m_logger.setLevel(logging.DEBUG) # 设置Logger的日志级别。这里的日志级别是DEBUG,表示Logger会记录所有级别大于等于DEBUG的日志消息。 formatter = logging.Formatter( '%(asctime)s - %(filename)s:%(lineno)d - %(levelname)s - %(message)s' ) # 创建一个Formatter实例,设置日志信息的格式。 # 创建一个文件日志处理器并设置级别为DEBUG file_handler = logging.FileHandler(filename) file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) m_logger.addHandler(file_handler) # 创建一个控制台日志处理器并设置级别为DEBUG console_handler = logging.StreamHandler() console_handler.setLevel(logging.DEBUG) console_handler.setFormatter(formatter) m_logger.addHandler(console_handler) return m_logger |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!