logging框架中主要由四个部分组成:
Loggers: 可供程序直接调用的接口
Handlers: 决定将日志记录分配至正确的目的地,即渠道
Filters: 提供更细粒度的日志是否输出的判断
Formatters: 制定最终记录打印的格式布局
①日志级别
logging是软件运行过程中跟踪一些时间发生的一种手段,软件开发会在软件的一些特定时间发生后在代码中添加log,此时会调用logging。logging提供了一系列的functions供使用,等级从低到高分别是debug()、info()、warnning()、error()、critical(),默认级别是WARNING,意味默认的级别下,显示的日志信息必须时>=WARNING的级别才会进行处理
②输出渠道
控制台:StreamHandle
文件:FileHandle
③日志格式
日志内容(Format): 时间–名称–级别名称–文件名称–行号–自定义的输出信息
# 4 设置输出格式(实例化渠道类)
fmt = "[%(asctime)s] %(name)s %(levelname)s[ %(filename)s--%(lineno)dline] %(message)s"
formatter = logging.Formatter(fmt)
2、模块logging使用
1、使用步骤(分别输出到控制台和文件)
1.1、创建日志收集器:logging.getLogger(“收集器的名字”)
1.2、设置日志级别:.setLevel(logging.DEBUG)(这里设置的是整体的级别,在渠道还可以另外设置级别,但是只能在这个范围内)
1.3、创建一个输出渠道
1.4、给输出渠道设置一个日志输出内容的格式
1.5、将日志格式绑定到渠道
1.6、将设置好的渠道,添加到日志收集器当中
import logging
# 1 设置日志收集器
logger = logging.getLogger(name)
# 2 设置日志输出级别
logger.setLevel(level)
# 3 设置输出渠道
handle_sh = logging.StreamHandler()#控制台渠道
handle_sh.setLevel(sh_level)
handle_fh = logging.FileHandler(file_path, encoding="utf-8")#文件渠道
handle_fh.setLevel(fh_level)
# 4 设置输出格式(实例化渠道类)
fmt = "[%(asctime)s] %(name)s %(levelname)s[ %(filename)s--%(lineno)dline] %(message)s"
formatter = logging.Formatter(fmt)
# 5 将日志格式绑定到渠道当中
handle_sh.setFormatter(formatter)#控制台
handle_fh.setFormatter(formatter)#文件
# 6 将渠道添加到日志收集器
logger.addHandler(handle_sh)
logger.addHandler(handle_fh)
控制台输出效果:
文件输出效果



