(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。
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 日志处理的相关知识。