自动化测试中日志的简单使用

本文介绍了一个使用Python的logging模块和RotatingFileHandler类实现的日志管理器。该管理器可以控制日志级别,自动滚动日志文件,并设定日志文件的最大大小及备份数量。通过配置,可以轻松调整日志的输出格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import logging
from logging.handlers import RotatingFileHandler

from config.config import LOG_PATH


class Log(object):
    def __init__(self, name=__name__, path='mylog.log', level='DEBUG'):
        self.__name = name
        self.__path = path
        self.__level = level
        self.__logger = logging.getLogger(self.__name)
        self.__logger.setLevel(self.__level)

    def __ini_handler(self):
        """初始化handler"""
        #maxBytes:当日志文件超过它时会创建一个文件,backupCount:一个日志文件满的时候最多创建的个数。后缀加1,2,3,
        file_handler = RotatingFileHandler(self.__path, maxBytes=10*1024*1024, backupCount=3, encoding='utf-8')
        return file_handler

    def __set_handler(self, file_handler, level='DEBUG'):
        """设置handler级别并添加到logger收集器"""
        file_handler.setLevel(level)
        self.__logger.addHandler(file_handler)

    @staticmethod
    def __set_formatter(file_handler):
        """设置日志输出格式"""
        formatter = logging.Formatter('%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]'
                                      '-%(levelname)s-[日志信息]: %(message)s',
                                      datefmt='%a, %d %b %Y %H:%M:%S')
        file_handler.setFormatter(formatter)

    @staticmethod
    def __close_handler(file_handler):
        """关闭handler"""
        file_handler.close()

    @property
    def logger(self):
        """构造收集器,返回looger"""
        file_handler = self.__ini_handler()
        self.__set_handler(file_handler)
        self.__set_formatter(file_handler)
        self.__close_handler(file_handler)
        return self.__logger


log = Log(__name__, LOG_PATH).logger

if __name__ == '__main__':
    log = Log(__name__, 'file.log')
    logger = log.logger
    logger.debug('I am a debug message')
    logger.info('I am a info message')
    logger.warning('I am a warning message')
    logger.error('I am a error message')
    logger.critical('I am a critical message')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值