日志(logging)系统详解

type
status
date
slug
summary
tags
category
icon
password
网址
作者
标签
文章链接
发布时间
来源
Python 的 logging 模块是一个强大而灵活的日志记录系统,是 Python 标准库的一部分。它提供了从简单到复杂的各种日志记录需求解决方案。

日志系统基本概念

日志级别

Python 定义了 5 个标准日志级别(按严重程度递增):
级别
数值
使用场景
DEBUG
10
详细信息,用于调试
INFO
20
确认程序按预期运行
WARNING
30
表明有意外情况发生或即将发生问题
ERROR
40
由于更严重的问题,程序某些功能已不能正常执行
CRITICAL
50
严重错误,程序本身可能无法继续运行

日志组件

Python 日志系统由 4 个主要组件组成:
  1. Logger:应用程序直接使用的接口
  1. Handler:决定日志发送到哪里(控制台、文件等)
  1. Filter:提供更精细的日志过滤
  1. 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中配置日志记录系统的基本设置,主要用于定义日志信息的记录方式和输出位置。以下是逐行解析:
具体功能说明:
  1. 日志级别 (level=logging.INFO)
      • 只记录INFO级别及以上的日志(DEBUG级别将被忽略)
      • Python日志级别从低到高:DEBUG < INFO < WARNING < ERROR < CRITICAL
  1. 日志格式 (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数据
  1. 日志处理器 (handlers)
      • FileHandler:将日志写入文件
        • 文件名:nasa_download.log
        • 使用UTF-8编码(支持中文等特殊字符)
      • StreamHandler:同时打印日志到控制台
      • 双重输出既方便实时调试,又保留持久化记录
  1. 典型应用场景
      • 适合需要长期保存运行记录的任务(如数据下载)
      • 控制台输出便于开发调试
      • 文件日志可用于后续分析或错误排查
  1. 注意事项
      • 首次调用basicConfig后不能再修改配置
      • 如果文件已存在,默认会追加写入(不会覆盖)
      • 更复杂的场景建议使用logger.getLogger()创建多日志器
Prev
Faker 库详细使用指南
Next
聚类标准误与固定效应的理解
Loading...
Article List
Practice makes perfect
文献集锦
如何理论创新?
管理学理论集锦
Python实际应用
聚类标准误与固定效应
巫师3:狂猎
Stata应用技巧
Python知识与技巧
双重差分法(DID)
创新文献阅读与摘要
计量经济学
Python绘图相关