Python之logging高级教程

日志库采用了模块化的方法,包括了logger,handlers,filters,和formatters四个组件。

  • Loggers是个开放的接口,直接面向代码使用。
  • Handlers发送日志记录到合适的目的地。
  • Filters提供过滤设备,决定了日志的那些内容可以输出。
  • Formatters设置了日志最后输出的格式。

log事件在一条log记录中是通过了logger,handlers,filters,和formatters流转的。

logging通过调用Logger类实例(以下称为记录器)的方法起作用。每个实例有一个名字,在概念上,它们在一个命名空间中,按照句点作为分隔符进行分分层。例如,一个叫scan的logger,是'scan.text',‘scan.html’和'scan.pdf'的父类.Logger的名字可以任意起名,代表着一条被记录的Log信息的产生源头。

一般传统的给loggers命名方法是用当前模块的名称

1 logger = logging.getLogger(__name__)

这样可以直观的看到事件发生的位置

Logging的流程

 Logger组件介绍:

  1. Logger直接面向应用的代码,所以当程序运行时,可以记录相关的日志信息
  2. 根据严重程度和过滤组件,logger决定日志信息的相关展示
  3. logger将相关的日志传递给对应的日志处理程序

Logger两个重要的分类:cofiguration和message sending

  • 1、配置
  • Logger.setLevel() 声明了log信息展示的最低的级别
  • Logger.addHandler() 和 Logger.removeHandler()  添加和移除绑定到logger上的handler组件
  • Logger.addFilter() 和 Logger.removeFilter() 添加和移除绑定到logger上的filter组件
  • 2、创建log信息
  • Logger.debug(),Logger.info(),Logger.warning(),Logger.error(),Logger.critical()

getLogger() :返回一个带有名字的logger实例相关内容

原文地址:https://www.cnblogs.com/PPhoebe/p/8465484.html