python接口自动化之logging日志收集器

一、日志模块

1、日志作用的:记录程序的执行过程,还原用户操作的过程
2、日志要素:
(1)日志渠道:日志输出的位置、文件、控制台
(2)日志级别:info、debug、error
(3)日志格式:日志样子,可自定义
(4)日志内容:自己输出的内容,或者是报错信息

二、日志级别

debug < info < warning < error < critical
debug :代码调试的输出
info: 表示程序正常执行的输出
warning : 不影响程序执行,可以优化
error:执行报错
critical:程序严重问题
修改root收集器的日志级别,logging.basicConfig(level=logging.DEBUG)

三、自定义日志收集器

1、创建日志手机器:创建和root一样的收集器
2、创建日志收集渠道,输出到哪里
3、创建日志格式
4、自定义日志输出格式,绑定给渠道
5、给收集器设置日志级别
6、将渠道绑定给自定义的收集器

四、代码示例

1、日志收集渠道为:控制台

import logging


# 创建体日志收集器
custom_log = logging.getLogger(name="wcy")
# 创建日志收集渠道【输出到控制台渠道】
congZhiTai = logging.StreamHandler()
# 自定义日志输出格式
customFormat = '【%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(filename)s - %(lineno)d】: ' \'%(message)s'

log_format = logging.Formatter(fmt=customFormat)

# # 给渠道设置日志输出格式
congZhiTai.setFormatter(fmt=log_format)


# 给收集器设置日志级别
custom_log.setLevel(logging.INFO)

# 给收集器绑定渠道
custom_log.addHandler(congZhiTai)

print(custom_log.info("test"))

控制台输出为:
【2021-12-01 19:40:50,188 - wcy - INFO - /Users/wangchuangyan/Desktop/py42/Summary/loggingDemo.py - loggingDemo.py - 58】: test

2、日志收集渠道为:文件

import logging
from logging import handlers

"""
   def __init__(self, 
   filename,  日志文件名称,要带路径,默认是当前目录
   when='h', 日志滚动周期的单位 S  M H D W 
   interval=1, 日志切割周期 1 
    backupCount=0, 日志保留的格式
    encoding=None, 日志编码格式
                  delay=False, utc=False, atTime=None,
                 errors=None):
"""


def custom_logging():
    # 创建体日志收集器
    custom_log = logging.getLogger(name="wcy")
    # 创建日志输出渠道,文件
    fileQuDao = handlers.TimedRotatingFileHandler(filename="python.log",
                                                  when="D",
                                                  encoding="utf-8"
                                                  )
    # 创建日志格式
    customFormat = '【%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(filename)s - %(lineno)d】: ' \
                   '%(message)s'

    log_format = logging.Formatter(fmt=customFormat)
    #  给渠道设置日志输出格式
    fileQuDao.setFormatter(fmt=log_format)

    # 给收集器设置日志级别
    custom_log.setLevel(logging.INFO)

    # 给收集器绑定渠道
    custom_log.addHandler(fileQuDao)
    return custom_log


log = custom_logging()
log.info("log在python.log文件中输出")

可以看到和代码同级目录中生成一个python.py文件,里面包含了所有的日志信息:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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') ``` 上面的代码会输出不同级别的日志信息,并分别输出到控制台和文件中。我们可以通过分析这些日志信息来诊断和调试测试问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值