Practice makes perfect
文献集锦
如何理论创新?
管理学理论集锦
Python实际应用
聚类标准误与固定效应
巫师3:狂猎
Stata应用技巧
Python知识与技巧
回归系数的经济意义
双重差分法(DID)
创新文献阅读与摘要
计量经济学
Python绘图相关
遗漏变量偏误检验
日志(logging)系统详解
type
Post
status
Published
date
Apr 12, 2025
slug
summary
tags
category
Python知识与技巧
icon
password
网址
作者
标签
文章链接
发布时间
来源
Python 的
logging 模块是一个强大而灵活的日志记录系统,是 Python 标准库的一部分。它提供了从简单到复杂的各种日志记录需求解决方案。日志系统基本概念
日志级别
Python 定义了 5 个标准日志级别(按严重程度递增):
级别 | 数值 | 使用场景 |
DEBUG | 10 | 详细信息,用于调试 |
INFO | 20 | 确认程序按预期运行 |
WARNING | 30 | 表明有意外情况发生或即将发生问题 |
ERROR | 40 | 由于更严重的问题,程序某些功能已不能正常执行 |
CRITICAL | 50 | 严重错误,程序本身可能无法继续运行 |
日志组件
Python 日志系统由 4 个主要组件组成:
- Logger:应用程序直接使用的接口
- Handler:决定日志发送到哪里(控制台、文件等)
- Filter:提供更精细的日志过滤
- Formatter:指定日志输出格式
基本使用方法
简单配置(basicConfig)
常用格式字符串
格式 | 描述 |
%(asctime)s | 人类可读的时间 |
%(created)f | 时间戳(time.time()返回值) |
%(filename)s | 文件名(path部分被去掉) |
%(funcName)s | 日志调用所在的函数名 |
%(levelname)s | 日志级别文本 |
%(levelno)s | 日志级别数字 |
%(lineno)d | 调用日志记录的行号 |
%(message)s | 日志消息 |
%(module)s | 模块名 |
%(name)s | logger名称 |
%(process)d | 进程ID |
%(thread)d | 线程ID |
基本设置
Python中配置日志记录系统的基本设置,主要用于定义日志信息的记录方式和输出位置。以下是逐行解析:
具体功能说明:
- 日志级别 (level=logging.INFO)
- 只记录INFO级别及以上的日志(DEBUG级别将被忽略)
- Python日志级别从低到高:DEBUG < INFO < WARNING < ERROR < CRITICAL
- 日志格式 (format)
%(asctime)s:时间戳(默认格式:2023-01-01 12:00:00,123)%(levelname)s:日志级别名称(如INFO/WARNING等)%(message)s:用户输出的日志内容- 示例输出:
2023-01-01 12:00:00,123 - INFO - 开始下载NASA数据
- 日志处理器 (handlers)
FileHandler:将日志写入文件- 文件名:nasa_download.log
- 使用UTF-8编码(支持中文等特殊字符)
StreamHandler:同时打印日志到控制台- 双重输出既方便实时调试,又保留持久化记录
- 典型应用场景
- 适合需要长期保存运行记录的任务(如数据下载)
- 控制台输出便于开发调试
- 文件日志可用于后续分析或错误排查
- 注意事项
- 首次调用
basicConfig后不能再修改配置 - 如果文件已存在,默认会追加写入(不会覆盖)
- 更复杂的场景建议使用
logger.getLogger()创建多日志器
上一篇
Faker 库详细使用指南
下一篇
聚类标准误与固定效应的理解
Loading...