python日志处理

本文深入探讨了Python的日志记录机制,介绍了日志的基本概念、logging模块的功能与使用方法,包括日志级别、四大组件(Logger、Handler、Filter、Formatter)的详细配置,以及如何通过示例代码整合日志信息。

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

一、日志概念

日志是一种可以追踪某些软件运行时所发生事件的方法。 软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情。 一个事件可以用一个可包含可选变量数据的消息来描述。 此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别(level)。

Python自身也提供了一个用于记录日志的标准库模块–logging。 logging模块定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统,由标准库模块提供日志记录API,关键好处是所有Python模块都可以使用这个日志记录功能。 所以,你的应用日志可以将你自己的日志信息与来自第三方模块的信息整合起来。

总之,日志的作用就是:

  • 调试软件程序
  • 了解软件程序运行情况,确定软件运行是否运行正常
  • 软件程序故障分析与定位

二、logging模块

1、logging日志级别在这里插入图片描述

内建等级中,级别最低的是DEBUG,级别最高的是CRITICAL。例如setLevel(logging.INFO),此时函数参数为INFO,那么该logger将只会处理INFO、WARNING、ERROR和CRITICAL级别的日志,而DEBUG级别的消息将会被忽略/丢弃。

2、logging日志系统的四大组件

在实际操作中,一般是先创建日志记录器(logging.getLogger),然后再设置日志级别(logger.setLevel),接着再创建日志文件,也就是日志保存的地方(logging.FileHandler),然后再设置日志格式(logging.Formatter),最后再将日志处理程序记录到记录器(addHandler)
在这里插入图片描述
在这里插入图片描述

Logger类:配置方法和消息发送方法
  • 配置方法

在这里插入图片描述

  • 消息发送方法

在这里插入图片描述

Handler类:常用配置方法

在这里插入图片描述
需要说明的是,应用程序代码不应该直接实例化和使用Handler实例。因为Handler是一个基类,它只定义了素有handlers都应该有的接口,同时提供了一些子类可以直接使用或覆盖的默认行为。下面是一些常用的Handler
在这里插入图片描述

Filter类:可以被Handler和Logger用来做比level更细粒度的、更复杂的过滤功能。

Filter是一个过滤器基类,它只允许某个logger层级下的日志事件通过过滤。

Formater类:用于配置日志信息的最终顺序、结构和内容

Formater对象与logging.Handler基类不同的是,应用代码可以直接实例化Formatter类。另外,如果你的应用程序需要一些特殊的处理行为,也可以实现一个Formatter的子类来完成。
在这里插入图片描述

3、示例
import logging

#创建日志级别
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

#创建日志文件
handler_info = logging.FileHandler('info_log.txt')
handler_info.setLevel(logging.INFO)

handler_warn = logging.FileHandler('warning_log.txt')
handler_warn.setLevel(logging.WARNING)

#定义日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler_info.setFormatter(formatter)
handler_warn.setFormatter(formatter)

#添加到日志记录器中
logger.addHandler(handler_info)
logger.addHandler(handler_warn)

logger.info('information')
logger.warning('warning')

打开’warning_log.txt’文件,输出:

2019-11-28 18:05:25,162 - __main__ - WARNING - warning

打开‘info_log.txt’文件,输出:

2019-11-28 18:05:25,161 - __main__ - INFO - information
2019-11-28 18:05:25,162 - __main__ - WARNING - warning
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值