认识 logging 模块
程序运行中需要记录关键信息,例如启动/结束时间、用户操作、错误原因等。日志(logging)是比 print() 更专业、更强大的工具。
基础用法
import logging
logging.warning("这是一个警告信息")
运行结果:
WARNING:root:这是一个警告信息
无需额外配置即可直接使用。默认只显示 WARNING 及以上级别的日志,输出到控制台,格式固定为 级别:logger 名:消息。
日志级别函数
| 函数 | 用途 | 示例 |
|---|---|---|
| logging.debug() | 调试细节(开发时用) | logging.debug("变量 x = %d", x) |
| logging.info() | 一般信息 | logging.info("服务已启动") |
| logging.warning() | 警告(可能有问题) | logging.warning("磁盘空间不足") |
| logging.error() | 错误(功能异常) | logging.error("数据库连接失败") |
| logging.critical() | 严重错误(程序可能崩溃) | logging.critical("配置文件丢失!") |
记忆口诀:D-I-W-E-C(严重性递增)。
设置日志级别
默认不显示 INFO 和 DEBUG,因为 logging 有最低级别设置。使用 basicConfig() 配置:
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("调试信息")
logging.info("普通信息")
logging.warning("警告")
输出:
DEBUG:root:调试信息
INFO:root:普通信息
WARNING:root:警告
level=logging.DEBUG 表示显示 DEBUG 及以上所有级别。可选值:DEBUG, INFO, WARNING, ERROR, CRITICAL。
自定义日志格式
默认格式简单,可添加时间、行号、函数名等。
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
logging.info()

