在前一例中,我们介绍了 logging 的基础用法。
实际开发中,我们一般需要 自定义日志格式,包括时间戳、日志级别、模块名等,以便更好地排查问题。
问题描述:
编写一个日志系统:
- 输出日志到控制台;
- 设置日志格式:[时间] [级别] 模块: 消息;
- 打印不同级别的日志,观察效果。
代码示例:
import logging
# 配置日志格式
log_format = "[%(asctime)s] [%(levelname)s] %(name)s: %(message)s"
logging.basicConfig(
level=logging.DEBUG, # 设置日志级别
format=log_format, # 设置格式
datefmt="%Y-%m-%d %H:%M:%S" # 设置时间格式
)
# 获取日志器
logger = logging.getLogger("DemoLogger")
# 打印不同级别日志
logger.debug("这是调试信息,用于开发阶段")
logger.info("这是普通运行日志")
logger.warning("这是警告信息,提醒潜在问题")
logger.error("这是错误信息,程序出错时使用")
logger.critical("这是严重错误,程序可能无法继续运行")
运行结果:
[2025-09-27 14:35:10] [DEBUG] DemoLogger: 这是调试信息,用于开发阶段
[2025-09-27 14:35:10] [INFO] DemoLogger: 这是普通运行日志
[2025-09-27 14:35:10] [WARNING] DemoLogger: 这是警告信息,提醒潜在问题
[2025-09-27 14:35:10] [ERROR] DemoLogger: 这是错误信息,程序出错时使用
[2025-09-27 14:35:10] [CRITICAL] DemoLogger: 这是严重错误,程序可能无法继续运行
步骤说明:
- logging.basicConfig
- level: 设置日志输出的最低级别(DEBUG < INFO < WARNING < ERROR < CRITICAL)。
- format: 定义日志的输出格式。
- datefmt: 定义时间格式。
- 日志格式占位符
- %(asctime)s → 日志时间
- %(levelname)s → 日志级别
- %(name)s → 日志器名称
- %(message)s → 日志消息
- 日志级别应用场景
- DEBUG → 调试信息
- INFO → 正常运行日志
- WARNING → 警告
- ERROR → 一般错误
- CRITICAL → 严重错误
总结:
- 通过配置 format,日志输出可以变得更有可读性。
- 开发环境推荐用 DEBUG 级别,生产环境推荐用 WARNING 或更高。
- 灵活配置日志格式,可以协助我们快速定位问题。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
收藏了,感谢分享