讲师中心 微信公众号

工具推荐

视频效率加速
剧云
剧云

中文短剧剧本制作平台

AniShort
AniShort

AI短剧协同制作平台

Seko
Seko

AI短剧一键生成成片

updream

一键生成高质量推广成片

Python日志监控系统学习路线第559讲_核心原理与实战案例详解【教程】

老雪吖_6415

老雪吖_6415

发布时间:2025-12-26 21:51:20

|

604人浏览过

|

来源于php中文网

原创

Python日志监控需聚焦生成、收集、告警三环节:logging.basicConfig可能因第三方库提前初始化而失效,应显式配置Logger;文件轮转按大小(RotatingFileHandler)或时间(TimedRotatingFileHandler)选择;日志不直送Prometheus,宜通过自定义Handler触发指标更新。

python日志监控系统学习路线第559讲_核心原理与实战案例详解【教程】

这个标题没有实际技术信息,无法对应具体问题或操作路径。Python 日志监控系统本身不是标准库模块,也没有“第559讲”这种官方编号——它大概率是某平台营销包装的课程标题,混杂了冗余修饰词和虚构序号。

真正需要搭建日志监控,得聚焦三个可落地的环节:日志怎么生成、怎么收集、怎么告警。下面按真实工程场景拆解:

logging 模块配置不生效?检查 basicConfig 调用时机和根 logger 状态

常见现象:调了 logging.basicConfig(level=logging.INFO),但 logger.info("test") 仍无输出。

  • 根本原因:basicConfig 只在根 logger 尚未配置 handler 时生效;如果第三方库(如 requests、urllib3)提前初始化过日志,它就失效了
  • 解决办法:改用显式配置,绕过根 logger 依赖
    import logging
    logger = logging.getLogger("myapp")
    logger.setLevel(logging.DEBUG)
    handler = logging.StreamHandler()
    formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
    handler.setFormatter(formatter)
    logger.addHandler(handler)
  • 注意:getLogger("a.b.c") 和 getLogger("a.b") 是不同实例,父子关系靠点号层级自动建立,但 handler 不自动继承

日志文件轮转用 RotatingFileHandler 还是 TimedRotatingFileHandler?

取决于你的运维节奏:按大小切分适合写入不均匀的场景(如突发批量任务),按时间切分利于对齐监控周期(如每天凌晨归档)。

python-testing-patterns
python-testing-patterns

使用 pytest、fixtures、mock 和测试驱动开发实现全面的测试策略。用于编写 Python 测试、搭建测试套件或实施测试最佳实践。

下载

立即学习“Python免费学习笔记(深入)”;

  • RotatingFileHandler 关键参数:maxBytes=10*1024*1024(单文件上限)、backupCount=5(保留旧文件数)
  • TimedRotatingFileHandler 关键参数:when="midnight"(每日零点)、interval=1(单位由 when 决定)、backupCount=30(保留30天)
  • 坑:TimedRotatingFileHandler 在长期运行服务中可能因系统时间跳变(如 NTP 校准)导致多生成一个空文件,建议配合 delay=True 延迟打开文件

如何把日志实时推送到 Prometheus + Grafana?别直接埋点,走中间层

Python 应用日志本身不含指标语义,硬解析日志行再暴露给 Prometheus 效率低、不可靠。

  • 正确路径:用 logging.Handler 子类,在关键位置(如请求结束、任务完成)触发指标更新
    from prometheus_client import Counter
    request_counter = Counter("app_requests_total", "Total requests", ["status"])
    <p>class MetricsHandler(logging.Handler):
    def emit(self, record):
    if hasattr(record, "metric") and record.metric == "request_end":
    request_counter.labels(status=record.status).inc()
  • 日志内容只做审计/调试,指标采集走专用逻辑;二者通过结构化日志字段(如 extra={"metric": "request_end", "status": "200"})协同
  • 避免在 emit() 里做网络请求(如直接 HTTP 推送),会阻塞主线程;指标更新应为内存原子操作

真正卡住人的从来不是某个 API 怎么写,而是日志级别设太高漏掉上下文、handler 冲突导致消息丢失、或者把告警逻辑和日志输出耦合在一起——这些细节不会出现在“第559讲”的标题里,但决定系统出问题时你能不能快速定位。

热门AI工具

更多
函子Zion

一款支持AI搭建、可视化编辑和多端发布的全栈无代码开发平台。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

4858

2023.08.10

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4083

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

994

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

6886

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5610

2024.08.16

Go 语言 HTTP 编程与中间件开发教程合集
Go 语言 HTTP 编程与中间件开发教程合集

全面讲解 Go 语言 HTTP 编程的核心知识,涵盖 net/http 标准库的 Server/Handler/HandlerFunc 体系、DefaultServeMux 路由注册与自定义路由器、Request / ResponseWriter 请求响应处理、中间件(Middleware)链式设计模式与常见中间件(日志/CORS/认证/限流)开发、http.Client 的超时配置与连接池管理、Cookie / Session 处理、

601

2026.05.08

Grafana重置admin密码
Grafana重置admin密码

本专题整合了grafana admin密码相关教程,阅读专题下面的文章了解更多详细内容。

2554

2025.09.02

Grafana admin密码
Grafana admin密码

本专题整合了Grafana密码相关教程,阅读专题下面的文章了解更多详细内容。

730

2025.12.09

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

20

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn