python自动化测试学习笔记(十六)logging日志模块

一、日志级别、输出渠道、日志内容

1、日志级别(Level):DEBUG、INFO、WARNING、ERROR、CRITICAL(FATAL)

  • 如果日志要求是DEBUG级别,那么以上五个级别的日志都输出,如果日志是INFO级别,那么会输出INFO以上级别,以此类推,一般设置是INFO级别

2、输出渠道(Handle):控制台(StreamHandle)、文件(FileHandle)

3、日志内容(Format):时间-哪个文件-哪行代码-输出内容

二、logging模块使用

1、import logging

2、默认的root日志收集器。默认的输出级别:WARNING

3、定制化自己的日志输出

3.1、第一步:创建一个日志收集器:

logger = logging.getLogger("收集器的名字")

3.2、第二步:给日志收集器设置日志级别:

logger.setLevel(logging.INFO)

3.3、第三步:给日志收集器,创建一个输出渠道。

handle1 = logging.StreamHandler()

3.4、第四步:给渠道设置一个日志输出内容的格式。

3.5、第五步:将设置的格式,绑定到渠道当中。将格式与渠道关联起来。

3.6、第六步:将设置好的渠道,添加到日志收集器上。

import logging
# 创建一个日志收集器
logger = logging.getLogger("nmb-py30")
# 设置日志输出级别
logger.setLevel(logging.INFO)
# 设置日志输出在哪些渠道
handle1 = logging.StreamHandler()
# 设置渠道自己的输出级别。
handle1.setLevel(logging.ERROR)
# 设置渠道的输出内容格式
fmt = '%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d line:%(message)s'
formatter = logging.Formatter(fmt)
# 将日志格式绑定到渠道当中。
handle1.setFormatter(formatter)
# 将设置好的渠道,添加到日志收集器上。
logger.addHandler(handle1)

# 设置日志输出到文件
handle2 = logging.FileHandler("my_py30.log",encoding="utf-8")
handle2.setFormatter(formatter)
logger.addHandler(handle2)


logger.info("hello,py30,我的第一个收集器设置成功了吗??")
logger.error("ERRor1111!!!!!")

注意:一个日志收集器可以添加多个渠道,且每个渠道还可以设置级别,但是只能在创建的收集器范围内;例如收集器设置的是INFO,那么渠道最低也只能是INFO,不能是DEBUG。

三、logging封装

import logging

class MyLogger(logging.Logger):

    def __init__(self,name,level=logging.INFO,file=None):
        # 设置输出级别、输出渠道、输出日志格式
        super().__init__(name,level)

        # 日志格式
        fmt = '%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d line:%(message)s'
        formatter = logging.Formatter(fmt)

        # 控制台渠道
        handle1 = logging.StreamHandler()
        handle1.setFormatter(formatter)
        self.addHandler(handle1)

        if file:
            # 文件渠道
            handle2 = logging.FileHandler(file,encoding="utf-8")
            handle2.setFormatter(formatter)
            self.addHandler(handle2)
# 因为一个项目的日志都是写入到一个日志文件的,所以可以把name,file这两个参数写死,直接实例化
# 后期每个模块调用就不用实例化,导入可以直接使用
logger = MyLogging("mylog",file="my_log.log")

if __name__ == '__main__':
    mlogger = MyLogger("py30",file="my_logger.log")
    mlogger.info("测试,我自己封装的日志类!!!!")

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
loggingPython内置的模块,它提供了一个灵活的日志记录系统。在接口自动化测试中,我们可以使用logging模块来输出测试日志,以便于调试和分析测试结果。下面是一个简单的logging封装调用示例: ```python import logging class Logger(object): def __init__(self, logger_name): self.logger = logging.getLogger(logger_name) self.logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_handler = logging.StreamHandler() console_handler.setLevel(logging.DEBUG) console_handler.setFormatter(formatter) file_handler = logging.FileHandler(filename='test.log') file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) self.logger.addHandler(console_handler) self.logger.addHandler(file_handler) def get_logger(self): return self.logger ``` 在上面的代码中,我们定义了一个Logger类,它接受一个logger_name参数,并初始化一个logger对象。我们可以通过调用get_logger()方法来获取这个logger对象。 在初始化logger对象时,我们设置了logger的日志级别为DEBUG,这意味着logger会记录所有级别为DEBUG及以上的日志。我们还定义了两个handler,一个是console_handler,它将日志输出到控制台;另一个是file_handler,它将日志输出到文件中。我们设置了两个handler的日志级别都为DEBUG,并且使用了同一个formatter来格式化日志输出。 在接口自动化测试中,我们可以使用Logger类来记录测试日志。例如: ```python logger = Logger('test').get_logger() logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') ``` 上面的代码会输出不同级别的日志信息,并分别输出到控制台和文件中。我们可以通过分析这些日志信息来诊断和调试测试问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值