loging模块采用了模块化设计,主要包含四种组件:

Loggers:记录器,提供应用程序代码能直接使用的接口;
Handlers:处理器,将记录器产生的日志发送至目的地;
Filters:过滤器,提供更好的粒度控制,决定哪些日志会被输出;
Formatters:格式化器,设置日志内容的组成结构和消息字段

一个记录器可以对应多个处理器
image.png

loggers 记录器

1、提供应用程序的调用接口
logger = logging.getLogger(name)
logger是单例的

2、决定日志记录的级别
logger.setLevel()

3、将日志内容传送到相关的handlers中
logger.addHandler() 和 logger.removeHandler()

Handlers 处理器

它们将日志分发到不同的目的地。可以是文件、标准输出、邮件、或者通过socke、http等协议发动到任何地方。
StreamHandler
标准输出stdout(如显示器)分发器。
创建方法:sh = logging.SstramHandler(stream=None)

FileHandler
将日志保存到磁盘文件的处理器
创建方法: fh = logging.FileHandler(filename,mode=”a”,encoding=None,delay=False)

setFormatter(): 设置当前Handler对象的消息格式。

image.png

Formatters 格式

Formatter对象用来最终设置日志信息的顺序、结构和内容。
其构造方法为 ft = logging.Formatter.init(fmt=None,datefmt=None,style=’%’)
datefmt默认是%Y-%m-%d %H:%M:%S 样式
style参数默认为百分符 % ,这表示%()s格式的字符串

文档来源