接口自动化测试框架之日志处理

“”"
logging库日志级别
DEBUG:详细信息,用于调试
INFO:程序正常运行过程中产生的一些信息
WARNING:警告用户
ERROR:由于严重的问题,程序不能执行一些功能
CRITICAL:严重错误,程序不能在继续运行

处理日志
Logger 记录器,暴露了应用程序代码能直接使用的接口。
Handler 处理器,将(记录器产生的)日志记录发送至合适的目的地。
Filter(可选) 过滤器,提供了更好的粒度控制,它可以决定输出哪些日志记录。
Formatter 格式化器,指明了最终输出中日志记录的布局

“”"
在这里插入图片描述

‘’‘编程方式处理日志,配置文件方式 后续完善’‘’


```python
import logging
from logging import handlers


class Handle_log:
    def __init__(self,name,filename,when='D',level=logging.INFO,backupCount=10,encoding='utf-8'):
        '''

        :param name:
        :param filename:日志输出文件的文件名称
        when:日志切割单位,默认D 天
        :param level: 日志输出的级别
        backupcount:保留文件的个数
        encoding:日志的编码格式
        '''
        self.name=name
        self.filename=filename
        self.when=when
        self.level=level
        self.backupCount=backupCount
        self.encoding=encoding
    def handle_log(self):
        '记录器'
        logger=logging.getLogger(self.name)
        '设置记录器的日志级别,记录器和处理器设置日志级别时,以记录器的日志为准'
        logger.setLevel(logging.DEBUG)
        '处理器handler'
        cosonleHandle=logging.StreamHandler()
        #设置handle的日志级别
        cosonleHandle.setLevel(logging.INFO)
        '处理器handler 文件输出'
        fileHandle=handlers.TimedRotatingFileHandler(filename=self.filename, when=self.when,  backupCount=self.backupCount,encoding=self.encoding)
        fileHandle.setLevel(logging.DEBUG)
        '设置日志格式'
        fmt = '[%(asctime)s-%(name)s-%(levelname)8s-%(filename)s-%(lineno)d]: %(message)s'
        formatterName=logging.Formatter(fmt=fmt)
        '给处理器设置日志格式'
        cosonleHandle.setFormatter(formatterName)
        fileHandle.setFormatter(formatterName)
        logger.addHandler(cosonleHandle)
        logger.addHandler(fileHandle)
        #定义一个过滤器
        flt=logging.Filter('e')  #命名空间定义,记录器名称以e开头
        #记录器添加过滤器
        # logger.addFilter(flt)
        '处理器添加过滤,如果logger不是以e开头,则文件不输出,控制台照常输出'
        fileHandle.addFilter(flt)
        return logger

if __name__ == '__main__':
    a=Handle_log(name='e.test_log',filename='log_name')
    b=a.handle_log()
    b.error('error')
    b.info('info')
    b.debug('debug')
    try:
        c
    except Exception as e:
        b.error(e)
        b.exception(e)#输出错误位置
        

![在这里插入图片描述](https://img-blog.csdnimg.cn/55fa54a236794340a26202cd7096c9ce.png)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值