把日志同时写到文件和打印到屏幕
''' Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适: logger提供了应用程序可以直接使用的接口; Logger.setLevel(lel):指定最低的日志级别,低于lel的级别将被忽略。debug是最低的内置级别,critical为最高 Logger.addFilter(filt)、Logger.removeFilter(filt):添加或删除指定的filter Logger.addHandler(hdlr)、Logger.removeHandler(hdlr):增加或删除指定的handler Logger.debug()、Logger.info()、Logger.warning()、Logger.error()、Logger.critical():可以设置的日志级别 handler将(logger创建的)日志记录发送到合适的目的输出; Handler.setLevel(lel):指定被处理的信息级别,低于lel级别的信息将被忽略 Handler.setFormatter():给这个handler选择一个格式 Handler.addFilter(filt)、Handler.removeFilter(filt):新增或删除一个filter对象 filter提供了细度设备来决定输出哪条日志记录; formatter决定日志记录的最终输出格式。 ''' import logging #创建logger logger = logging.getLogger('XT-LOG') logger.setLevel(logging.DEBUG) #设置全局的日志级别(全局的优先级高于局部的但是若局部的在全局之上,则保存局部的) #创建一个console handler,并且设置其日志级别为debug ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) #创建一个file handler,并且设置其日志级别为warning fh = logging.FileHandler('./file/logging.log') fh.setLevel(logging.WARNING) #创建一个formatter(格式) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s',datefmt='%Y-%m-%d %H:%M:%S') #把formatter添加到console handler和file handler ch.setFormatter(formatter) fh.setFormatter(formatter) #把console handler和file handler添加到logger logger.addHandler(ch) logger.addHandler(fh) #设置错误消息 logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') 以上输出到屏幕结果: 2017-04-08 16:12:49 - XT-LOG - DEBUG - debug message 2017-04-08 16:12:49 - XT-LOG - INFO - info message 2017-04-08 16:12:49 - XT-LOG - WARNING - warning message 2017-04-08 16:12:49 - XT-LOG - ERROR - error message 2017-04-08 16:12:49 - XT-LOG - CRITICAL - critical message
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)