pytest日志设置

先把日志代码放上,后面再将如何将日志集成到框架和测试报告中


import logging.handlers

from path_manager import project_path


class GetLogger:

    # 整个框架其实只需要一个日志对象即可,可以用单例模式实现
    # 把logger定义成类属性,默认值是None
    logger = None

    # 类方法中完成上面logger属性的实例化过程
    @classmethod
    def get_logger(cls):
        if cls.logger is None:
            # 创建日志名称apiautotest,这个值是自定义的
            cls.logger = logging.getLogger('apiautotest')
            # 设置日志级别,debug/info/waring/error/critical
            # 级别从左到右初步升高
            cls.logger.setLevel(logging.DEBUG) # 设置为DEBUG,意味着比他高的级别的日志都会被记录
            # 定义日志的一种格式
            fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d)] - %(message)s"
            fm = logging.Formatter(fmt)

            # 创建日志处理器,把日志存储到文件,按照一定的规则
            tf = logging.handlers.TimedRotatingFileHandler(
                filename=f'{project_path}/logs/requests.log',
                when='H',# 间隔多长时间去生成新的日志文件,时间单位
                interval=1,# 间隔的时间数量
                backupCount=3,# 除了最新的日志文件外,最多保留3个之前的日志文件
                encoding='utf-8'
            )

            # 将日志输出到控制台上
            logging.basicConfig(level=logging.DEBUG,format=fmt)

            # 在处理器tf中添加格式
            tf.setFormatter(fm)
            # 在日志对象添加处理器
            cls.logger.addHandler(tf)
        return cls.logger

if __name__ == '__main__':
    logger = GetLogger.get_logger() # 得到一个对象
    logger.debug('这是debug日志')
    logger.info('这是info日志')
    logger.warning('这是warning日志')
    logger.error('这是error日志')
    logger.exception('这是异常日志')
    logger.critical('这是critical日志')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值