自动化测试过程中需要对操作留下日志记录,以便出问题时进行定位。这里简单封装了一个工具类用于日志的记录。
以下是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("测试")