Python logging 模块基础与高级配置解析

周予安
周予安
发布时间:2026-10-13 | 6人浏览过
原创

本文详解Python内置logging模块的使用。涵盖日志定义、五大级别(DEBUG至CRITICAL)及默认WARNING过滤机制。通过基础控制台输出示例与高级配置代码,展示如何自定义日志格式、处理器及文件记录,帮助开发者高效实现程序日志管理。

Python logging模块基础与高级配置解析

一、基础使用

logging使用场景

1.1 logging使用场景

日志功能对于绝大多数程序而言不可或缺。Python标准库提供了logging模块,这是一个高效且现成的日志解决方案。然而,并非所有场景都适用该模块,Python官方文档推荐了特定的使用方式:

日志级别定义与默认行为

任务场景 最佳工具
普通情况下,在控制台显示输出 print()
报告正常程序操作过程中发生的事件 logging.info()(或者更详细的logging.debug())
发出有关特定事件的警告 warnings.warn()或者logging.warning()
报告错误 弹出异常
在不引发异常的情况下报告错误 logging.error(), logging.exception()或者logging.critical()

logging模块定义了若干日志级别,按事件严重程度由低到高排列(注意均为大写,因为它们是常量):

级别 级别数值 使用时机
DEBUG 10 详细信息,常用于调试。
INFO 20 程序正常运行过程中产生的一些信息。
WARNING 30 警告用户,虽然程序还在正常工作,但有可能发生错误。
ERROR 40 由于更严重的问题,程序已不能执行一些功能了。
CRITICAL 50 严重错误,程序已不能继续运行。

默认日志级别设定为WARNING。这意味着只有WARNING级别及以上严重程度的事件才会被记录,低级别信息将被忽略。因此,在默认配置下,DEBUG和INFO级别的日志会被过滤,而WARNING、ERROR和CRITICAL级别的日志会被正常记录。

处理被跟踪的事件有多种方法。最简单的方式是将其直接打印到终端控制台,或者将其写入磁盘文件进行持久化存储。

简单日志输出示例

1.2 简单范例

在未进行任何配置和设定的情况下,logging模块会将日志直接打印到显示器上。具体示例如下:


import logging
logging.warning('Watch out!') # 消息会被打印到控制台上
logging.info('I told you so') # 这行不会被打印,因为级别低于默认级别

若将上述代码保存为脚本并运行,输出结果如下:

WARNING:root:Watch out!

1.3 高级使用

高级日志配置与自定义格式


import logging

#创建logger记录器
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)

#创建一个控制台处理器,并将日志级别设置为debug

ch = logging.StreamHandler()

ch.setLevel(logging.DEBUG)

#创建formatter格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

#将formatter 添加到ch处理器
ch.setFormatter(formatter)

#将ch添加到logger
logger.addHandler(ch)

#然后就可以开始使用了
# logger.debug('debug message')
#logger.info('info message')
# logger.warning('warn message')
# logger.error('error message')
# logger.critical('critical message')

def Logss():
  #要打印的信息
  a = "3"
  logger.info(a)

Logss()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表