Python 日志打印

本文详细介绍了Python标准库中的日志模块logging,包括核心组件:Logger、Handler、Filter和Formatter。解释了日志重要性及其配置方式,讨论了性能调优策略,如缓存日志计算结果以避免无效计算。同时,文章还提到了日志框架如何处理自身的异常,以及模块级的便捷日志输出方法。

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

核心概念

Python标准库自带日志模块logging,logging中涉及到4个核心组件,这些组件构建了logging体系。

  • Logger: 应用程序直接使用的接口对象,通过logger操作完成表达日志输出要求.
  • Handler: 交付由Logger创建的日志记录(logRecord)到其对应的目的地,比如控制台,文件,网络。
  • Filter:对日志记录(logRecord)进行更细粒度过滤,控制是否应该输出对应的日志记录
  • Formatter: 控制日志输出的格式

日志有重要性区分,对应不同的应用场景,logging模块中默认定义了5种重要性并且可扩展。

DEBUG < INFO < WARNING  < ERROR < CRITICAL

默认的5种重要性和其它语言里的情况差不多,从左到右重要性依次升高。

每个Logger对象都由一个名字,惯例是每个模块都声明一个logger

logger = logging.getLogger(__name__)

Logger间通过名字构成层级关系,"x"名字的logger是"x.y"名字logger的父级logger,在层级的最顶层是一个叫做“root”的logger。对应五种默认的重要性,Logger有对应的方法,如:debug()info()

Logger与Handler都可以设置日志重要性级别,低于这个级别的日志记录将不会被输出。如果一个Logger没有重要性设置,则会以父级别Logger的重要性判断一个日志是否有效,如果父Logger也未设置,则会向爷爷辈找,直到“root”,默认重要级别为“WARNING”。

logger.setLevel(logging.DEBUG)
handler.setLevel(logging.DEBUG)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值