一、为啥要在自动化框架上增加日志模块

·记录程序运行信息

·方便定位问题


二、python日志模块logging

·DEBUG

·INFO

·WARNING

·ERROR

废话不罗嗦,直接上代码(直接百度敲的OKO)

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Pytest
@File :log_util.py
@IDE :PyCharm
@Author :zhou
@Date :2022/8/7 19:15
"""
import logging
import os
import time

root_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
print(root_path)
log_path = os.path.join(root_path,"log")
print(log_path)

class Logger:
def __init__(self):
# 定义日志位置和文件名

self.logname = os.path.join(log_path, "{}.log".format(time.strftime("%Y%m%d")))
# 定义一个日志容器
self.logger = logging.getLogger("log")
# 设置日志打印的级别
self.logger.setLevel(logging.DEBUG)
# 创建日志输入的格式
self.formater = logging.Formatter(
'[%(asctime)s][%(filename)s %(lineno)d[%(levelname)s]:%(message)s]'
)
# 创建日志处理器,用来存放日志文件
self.filelogger = logging.FileHandler(self.logname, mode='a', encoding="utf-8")
# 创建日志处理器,在控制台打印
self.console = logging.StreamHandler()
# 设置控制台打印日志界别
self.console.setLevel(logging.DEBUG)
# 文件存放日志级别
self.filelogger.setLevel(logging.DEBUG)
# 文件存放日志格式
self.filelogger.setFormatter(self.formater)
# 控制台打印日志格式
self.console.setFormatter(self.formater)
# 将日志输出渠道添加到日志收集器中
self.logger.addHandler(self.filelogger)
self.logger.addHandler(self.console)

logger = Logger().logger

if __name__ == '__main__':
logger.debug("我打印debug日志")

Pytest学习-日志模块_pytest