核心概念
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都可以设置日志重要性级别,低于这个级别的日志记录将不会被输