Python(自动化测试封装日志logging)

封装日志是基操了,java里面我们用log4j2进行日志封装,python里面我们用logging来封装直接看代码:

import logging
import os
import time


class LOGER(object):
    #
    # 封装后的logging
    #
    def     __init__(self, logger=None):
        # 创建一个logger
        self.logger = logging.getLogger(logger)
        level = 'INFO'
        if level == 'DEBUG' or level == 'debug':
            self.setLev = logging.DEBUG
        elif level == 'INFO' or level == 'info':
            self.setLev = logging.INFO
        elif level == 'WARN' or level == 'warn' or level == 'warning' or level == 'WARNING':
            self.setLev = logging.WARN
        elif level == 'ERROR' or level == 'error':
            self.setLev = logging.ERROR
        self.logger.setLevel(self.setLev)

        self.log_time = time.strftime("%Y_%m_%d_")
        self.path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
        self.log_path = os.path.join(self.path, 'log')
        self.log_name = self.log_path + "\\" +"Kejie"+self.log_time + '.log'

        # 创建一个handler用于写入日志文件
        fh = logging.FileHandler(self.log_name, 'a', encoding='utf-8')  # a的意思是追加,防止每次都覆盖了
        fh.setLevel(self.setLev)

        # 再创建一个handler,用于输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(self.setLev)

        # 定义handler的输出格式
        formatter = logging.Formatter(
            '[%(asctime)s] %(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s]-->%(message)s')
        fh.setFormatter(formatter)
        ch.setFormatter(formatter)

        # 给logger添加handler
        self.logger.addHandler(fh)
        self.logger.addHandler(ch)

        fh.close()
        ch.close()

    def getlog(self):
        return self.logger


if __name__ == '__main__:':
    log = LOGER().getlog()
    res1 = {"code": 1, "message": "贺喜你,登录成功"}
    log.info(res1)
    res2 = {"code": 0, "message": "登录失败"}
    if res2['code'] == 0:
        log.info("登录失败")

我们的formatter格式有:

 

posted @ 2022-05-09 15:29  天生如此  阅读(210)  评论(0)    收藏  举报