当前位置:首页>python>Python开发从零开始-41.5-日志处理

Python开发从零开始-41.5-日志处理

  • 2026-09-02 16:16:40
Python开发从零开始-41.5-日志处理
接上文Python开发从零开始-41.4-日志处理,本文小编与大家分享 Python 日志处理的相关知识。
(八)日志系统核心对象的常用方法
1、日志记录器常用方法

(1)日志记录

按严重程度从低到高调用,仅当日志级别 ≥ 设置级别时输出:

  • debug():记录调试信息,开发阶段追踪变量或流程;

  • ‌info():记录常规信息,确认程序按预期运行(如服务启动);

  • ‌warning():记录警告信息,程序仍可运行但存在潜在问题(如磁盘空间不足);

  • ‌error():记录错误信息,功能执行失败但未崩溃(如数据库连接超时)。

  • ‌critical():记录严重错误信息,系统可能无法继续运行(如内存耗尽)。

  • ‌exception()‌:仅在 except 块中使用,自动附加堆栈跟踪信息(等价于 error(..., exc_info=True))。‌‌

注意:以上方法支持 %s 风格格式化(如 logger.info("Value: %s", val)),应避免直接使用 f-string 拼接以优化性能。

(2)配置与管理方法

  • ‌setLevel()‌:设置最低日志记录级别;

  • ‌addHandler()‌ / removeHandler()‌:添加 / 移除日志处理器;

  • ‌addFilter()‌ / ‌removeFilter()‌:添加自定义过滤规则,精细控制哪些日志被处理。

(3)状态检查方法

  • ‌isEnabledFor()‌:检查当前是否启用了指定日志级别,高频日志场景下可先判断再构造消息,提升性能 。

  • ‌hasHandlers()‌:检查当前 Logger 以及它所有祖先 Logger(直到 Root Logger)上附加的所有 Handlers。至少有一个 Handler时,返回 True,否则返回 False。

2、日志处理器常用方法
  • setLevel()‌:设置该 Handler 处理的最低日志级别,低于此级别的日志将被忽略;

  • ‌setFormatter()‌:绑定日志格式化器,定义输出文本的样式(时间、级别、消息等) 。

  • ‌emit()‌:‌子类必须实现‌的核心方法,负责将格式化后的日志记录写入具体目标(控制台、文件、网络等);

  • ‌handle()‌:外部调用入口,先经过滤器筛选,再调用 emit(),并包裹线程锁保证并发安全;

  • ‌close()‌:关闭 Handler 释放资源(如关闭文件句柄或 socket),继承自基类,子类常需重写;

  • ‌acquire() / release()‌:手动获取/释放内部线程锁,用于自定义 Handler 中控制并发写入;

  • ‌handleError()‌:当 emit() 执行出错时自动调用 。‌‌

3、日志格式化器常用方法

  • format()‌:‌核心方法‌,将 LogRecord 对象转换为最终字符串。通常无需手动调用,由 Handler 自动触发;自定义 Formatter 时需重写此方法以插入逻辑;

  • ‌formatTime()‌:格式化时间字段。重写此方法可自定义时间显示逻辑(如转为本地时区或特定格式);

  • ‌formatException()‌:格式化异常堆栈信息;

  • ‌formatStack()‌:格式化堆栈跟踪信息。‌‌

4、日志过滤器常用方法

filter():核心方法,方法返回一个布尔值,表示是否接受日志记录参数。

5、日志记录对象常用方法

日志记录对象用于封装日志的所有详细信息(日志上下文信息),主要包含相关属性。前文已做介绍,本文不再赘述。

【小编提示】

日志系统核心对象的常用方法和属性较多,小编不便一一介绍,大家可查询官网文档和网络教程进行深入了解。

受文章篇幅所限,下文将继续介绍 Python 日志处理的相关知识。

最新文章

随机文章