『居善地』接口测试 — 25.logging日志模块处理流程

2021-01-25  本文已影响0人  繁华似锦Fighting

1、概括理解

了解了四大组件的基本定义之后,我们通过图示的方式来理解下信息的传递过程:

也就是获取的日志信息,进入到Logger日志器中,传递给处理器确定要输出到哪里,然后进行过滤器筛选,通过后再按照定义的格式进行日志的输出。

2、详细说明

描述上面这个图的日志流处理流程:

可见,一条日志信息要想被最终输出需要依次经过以下几次过滤:

3、应用示例

(1)需求:

(2)分析:

(3)示例

# 导入logging模块
import logging
import logging.handlers
# 或者 from logging.handlers import TimedRotatingFileHandler
import datetime

# 创建一个日志器,就是一个logger对象
logger = logging.getLogger('logger')
# 设置logger日志级别
logger.setLevel(logging.DEBUG)

# 定义处理器1
# 这里进行简化
# rf_handler = logging.handlers.TimedRotatingFileHandler('all.log', when='midnight', interval=1, backupCount=7,
#                                                        atTime=datetime.time(0, 0, 0, 0))
"""
`TimedRotatingFileHandler`位于`logging.handlers`模块中, 
支持按一定时间间隔更换磁盘日志文件。这样就可以保证日志单个文件不会太大。
可以根据官方文档自己学习:
https://docs.python.org/zh-cn/3/library/logging.handlers.html
"""


all_handler = logging.FileHandler('../log/all.log', encoding="utf-8")

# 给处理器传入格式器
all_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))

# 定义处理器2
error_handler = logging.FileHandler('../log/error.log', encoding="utf-8")
# 设置处理器日志级别
error_handler.setLevel(logging.ERROR)
# 给处理器传入格式器
error_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d] - %(message)s"))

# 把两个处理器添加到日志器中
logger.addHandler(all_handler)
logger.addHandler(error_handler)

logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')

执行结果:

all.log文件输出

2021-01-15 23:12:27,197 - DEBUG - debug message
2021-01-15 23:12:27,198 - INFO - info message
2021-01-15 23:12:27,198 - WARNING - warning message
2021-01-15 23:12:27,198 - ERROR - error message
2021-01-15 23:12:27,198 - CRITICAL - critical message

error.log文件输出

2021-01-15 23:12:27,198 - ERROR - demo_log3.py[:35] - error message
2021-01-15 23:12:27,198 - CRITICAL - demo_log3.py[:36] - critical message

参考:https://blog.csdn.net/mk1843109092/article/details/97104041

上一篇 下一篇

猜你喜欢

热点阅读