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格式有: