logging模块

本文介绍了Python的logging模块,包括日志的概念、使用场景、日志级别、四大组件(记录器、处理程序、过滤器和格式化程序)及其作用。通过示例展示了如何设置记录器、控制台输出及常用接口参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

此篇仅是个人对logging模块的学习记录,具体请详见
https://docs.python.org/zh-cn/3/library/logging.html?highlight=logging#logging.basicConfig

logging 模块概念

日志(logging)是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为 等级 或 严重性

什么时候使用日志

你想要执行的任务此任务的最好的工具
在对程序的普通操作发生时提交事件报告(比如:状态监控和错误调查)logging.info() 函数(当有诊断目的需要详细输出信息时使用 logging.debug() 函数)
提出一个警告信息基于一个特殊的运行时事件warnings.warn() 位于代码库中,该事件是可以避免的,需要修改客户端应用以消除告警 logging.warning() 不需要修改客户端应用,但是该事件还是需要引起关注
对一个特殊的运行时事件报告错误引发异常
报告错误而不引发异常(如在长时间运行中的服务端进程的错误处理)logging.error(), logging.exception() 或logging.critical() 分别适用于特定的错误及应用领域

日志级别

级别何时使用
DEBUG细节信息,仅当诊断问题时适用
INFO确认程序按预期运行
WARNING表明有已经或即将发生的意外(例如:磁盘空间不足),程序仍按预期进行
ERROR由于严重的问题,程序的某些功能已经不能正常执行
CRITICAL严重的错误,表明程序已不能继续执行

日志中的四类组件

日志库采用模块化方法,并提供几类组件:记录器、处理程序、过滤器和格式化程序。

  • 记录器暴露了应用程序代码直接使用的接口。
  • 处理程序将日志记录(由记录器创建)发送到适当的目标。
  • 过滤器提供了更精细的附加功能,用于确定要输出的日志记录。
  • 格式化程序指定最终输出中日志记录的样式。

日志事件信息在 LogRecord 实例中的记录器、处理程序、过滤器和格式化程序之间传递。

在命名记录器时使用的一个好习惯是在每个使用日志记录的模块中使用模块级记录器,命名如下:

logger = logging.getLogger(__name__)

这意味着记录器名称跟踪包或模块的层次结构,并且直观地从记录器名称显示记录事件的位置。
例如:

import logging

logging.basicConfig()
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.info('So should this')

控制台输出:
INFO:root:So should this
添加参数:logger = logging.getLogger(__name__)
控制台输出:
INFO:__main__:So should this

常用的接口和参数

  • logging.basicConfig
参数描述
filename记录日志的文件,如果没有指定,则默认在控制台打印日志信息
filemode打开文件的mode,例如:‘w’, ‘r’, ‘a’
format处理器使用的指定格式字符串, 例如:’%(message)s:%(asctime)s’
datefmt显示的日期格式,例如:’%m/%d/%Y %I:%M:%S %p’
level记录器的级别, 例如:logging.INFO, logging.DEBUG

对 basicConfig() 的调用应该在 debug() , info() 等的前面。因为它被设计为一次性的配置,只有第一次调用会进行操作,随后的调用不会产生有效操作。

后续用到其他接口还会继续补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值