全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python日志系统学习路线第12讲_核心原理与实战案例详解【指导】

Python日志系统核心是Logger、Handler、Formatter和Filter四大组件协同:Logger决定“记什么”和“往哪送”,Handler负责“怎么发”和“发给谁”,Formatter定义输出格式,Filter实现精细过滤。

Python日志系统的核心在于理解 logging 模块的四大组件如何协同工作:Logger(记录器)、Handler(处理器)、Formatter(格式器)和 Filter(过滤器)。不搞懂它们之间的关系,配置再复杂也容易出错。

Logger 是入口,决定“记什么”和“往哪送”

每个 Logger 都有日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL),只有 >= 当前级别的日志才会被处理。Logger 本身不输出日志,而是把日志对象(LogRecord)交给它绑定的 Handler。注意:Logger 可以有多个 Handler,也可以不输出(比如只做转发);子 Logger 默认会向父 Logger 传递日志(propagate=True),这是实现分级控制的关键。

  • logging.getLogger("a.b.c") 获取命名 Logger,推荐按模块名组织,便于统一管理
  • 避免直接用 logging.basicConfig(),它只影响 root Logger,掩盖了层级逻辑
  • 设置 logger.setLevel(logging.DEBUG) 控制本级过滤,但不阻止父级再次过滤

Handler 是出口,决定“怎么发”和“发给谁”

Handler 负责实际的输出动作。常见类型有 StreamHandler(打印到终端)、FileHandler(写入文件)、RotatingFileHandler(自动轮转)、TimedRotatingFileHandler(按时间切分)等。每个 Handler 也可设级别,形成二次过滤。

  • 一个 Handler 只能绑定一个 Formatter,但多个 Handler 可共用同一个 Formatter
  • 生产环境建议至少配两个 Handler:一个输出到文件(带时间轮转),一个输出到 stderr(用于快速排查)
  • 自定义 Handler 很简单——继承 logging.Handler,重写 emit() 方法即可接入 Kafka、ES 或钉钉通知

Formatter 控制“长啥样”,Filter 控制“让不让过”

Formatter 定义日志字符串的结构,支持 %(asctime)s%(name)s%(levelname)s%(message)s 等占位符;Filter 则是更精细的拦截逻辑,可基于 logger 名、消息内容、甚至自定义条件返回 True/False。

  • 推荐在 Formatter 中加入 %(pathname)s:%(lineno)d,方便定位问题代码行
  • Filter 不仅能做白名单(如只放行某个模块的日志),还能动态修改 LogRecord 属性(例如脱敏手机号)
  • Filter 可添加到 Logger 或 Handler 上,作用范围不同:加在 Logger 上影响所有下游 Handler,加在 Handler 上只影响该输出通道

实战案例:一个带分级输出与错误告警的配置

假设项目结构为 app/ 下有 main.pyutils/db.py,要求:
• INFO 及以上写入 daily.log(按天轮转)
• ERROR 及以上同时发邮件(模拟)
• db 模块单独 DEBUG 日志输出到 db_debug.log

  • 创建独立 Logger:db_logger = logging.getLogger("app.utils.db"),设 level=DEBUG
  • 为 db_logger 单独配 FileHandler + DEBUG Formatter,不 propagate 到 root
  • root Logger 配 TimedRotatingFileHandler(level=INFO)和自定义 MailHandler(level=ERROR)
  • MailHandler 中重写 emit(),调用 smtplib 发送摘要(注意异常捕获,避免日志系统崩溃)


# python  # 处理器  # app  # ai  # stream  # 钉钉  # gate  # asic 


相关文章: 小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Swift中switch语句区间和元组模式匹配  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  动图在线制作网站有哪些,滑动动图图集怎么做?  广德云建站网站建设方案与建站流程优化指南  jQuery 常见小例汇总  青岛网站建设如何选择本地服务器?  Swift中swift中的switch 语句  javascript基本数据类型及类型检测常用方法小结  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在宝塔面板创建新站点?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何登录建站主机?访问步骤全解析  佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何破解联通资金短缺导致的基站建设难题?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  如何在阿里云完成域名注册与建站?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  如何在服务器上三步完成建站并提升流量?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何在橙子建站中快速调整背景颜色?  如何用西部建站助手快速创建专业网站?  *服务器网站为何频现安全漏洞?  制作网站外包平台,自动化接单网站有哪些?  制作旅游网站html,怎样注册旅游网站?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何在腾讯云免费申请建站?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  如何在万网开始建站?分步指南解析  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何快速登录WAP自助建站平台?  无锡营销型网站制作公司,无锡网选车牌流程?  如何在Golang中使用replace替换模块_指定本地或远程路径  深圳网站制作平台,深圳市做网站好的公司有哪些?  建站之星代理费用多少?最新价格详情介绍  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  如何高效配置IIS服务器搭建网站?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  建站之星如何修改网站生成路径? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。