0x04 接口自动化测试-记录日志的工具类

自动化测试过程中需要对操作留下日志记录,以便出问题时进行定位。这里简单封装了一个工具类用于日志的记录。

以下是V1版本,目前日志按时间轮转输出,后续会进行优化,通过配置文件控制输出方式等。

# -*- coding:UTF-8 -*-
# @author  : Joker
# @Time    : 2019/12/24
# @IDE     : PyCharm
# @Version : Python 3.7

"""操作日志"""

import os
import logging
from logging.handlers import TimedRotatingFileHandler
from common.handle_conf import conf
from common.handle_path import LOG_DIR


# 读取配置文件中的日志配置
level = conf.get_str("log", "level")
f_level = conf.get_str("log", "f_level")
s_level = conf.get_str("log", "s_level")
filename = conf.get_str("log", "filename")

# 获取日志文件路径
file_path = os.path.join(LOG_DIR, filename)


class Log:

    @staticmethod
    def make_logger():
        # 创建日志收集器并设置收集器等级
        log = logging.getLogger()
        log.setLevel(level)

        # 添加输出渠道(控制台)并设置输出等级
        sh = logging.StreamHandler()
        sh.setLevel(s_level)
        log.addHandler(sh)

        # 添加输出渠道日志文件并设置输出等级
        # fh = logging.FileHandler(file_path, encoding="utf8")
        
        # 按时间轮转输出
        fh = TimedRotatingFileHandler(filename=file_path,
                                      when="D",
                                      interval=1,
                                      backupCount=7,
                                      encoding="utf8")
        fh.setLevel(f_level)
        log.addHandler(fh)

        # 设置日志输出格式并将输出格式和输出渠道绑定
        formatter = logging.Formatter('%(asctime)s-%(levelname)s: %(message)s')
        sh.setFormatter(formatter)
        fh.setFormatter(formatter)

        return log


# 调用类的静态方法创建日志收集器,方便其他模块调用
log = Log.make_logger()


if __name__ == "__main__":
    log.info("111")
    log.error("测试")

 

你可能感兴趣的:(#,接口自动化)