python封装日志类

日志在编写代码的时候会要经常遇到的,做自动化测试的时候也需要查看日志,所以需要了解python封装日志的方式。

python的日志等级是:CRITICAL>ERROR>WARNING>INFO>DEBUG
默认的等级是WARNING,设置了等级,就只会输出大于等于设置等级的
比如logger.setLevel(level=logging.DEBUG),那么五种级别的都会打印
如果logger.setLevel(level=logging.ERROR),那么只会打印error和critical

下面是我写的流程图
在这里插入图片描述
一般使用日志需要把它封装成类,或者是装饰器,再直接调用。
下面是我写的一个日志类

import logging
from selenium import webdriver
import time

class Log():

    def __init__(self):
        self.logger=logging.getLogger() #添加日志器
        self.logger.setLevel(level=logging.DEBUG) #设置日志级别
        self.f1 = logging.Formatter(fmt='%(asctime)s %(filename)s %(lineno)d %(message)s') #设置日志格式
        self.f2 = logging.Formatter(fmt='%(asctime)s %(filename)s %(lineno)d >>>>>>> %(message)s') #设置日志格式
        self.filename='./filelog.log'  #日志文件名

    def add_StreamHandler(self):
        '''
        添加一个控制台处理器
        :return:
        '''
        self.hand=logging.StreamHandler() #添加控制台处理器
        self.hand.setLevel(level=logging.DEBUG) #设置处理器的日志级别
        self.hand.setFormatter(self.f1)  #处理器添加格式
        self.logger.addHandler(self.hand)  #日志器添加处理器

    def add_FileHandler(self):
        '''
        添加一个文件处理器
        :return:
        '''
        self.filehand=logging.FileHandler(filename=self.filename,encoding='utf-8') #添加文件处理器
        self.filehand.setLevel(level=logging.WARNING) #设置处理器的日志级别
        self.filehand.setFormatter(self.f2)  #处理器添加格式
        self.logger.addHandler(self.filehand)  #日志器添加处理器

    def run(self):
        self.add_StreamHandler()
        self.add_FileHandler()
        return self.logger

if __name__ == '__main__':

    logger=Log().run() #实例化日志类,调用run方法

    # logger.info('=====this is info====')
    # logger.debug('=====this is debug====')
    # logger.warning('=====this is warning====')
    # logger.error('=====this is error====')
    # logger.critical('=====this is critical====')
    driver = webdriver.Chrome()
    url='https://www.baidu.com/'
    logger.debug('开始打开浏览器{}'.format(url))
    driver.get(url)
    logger.info('已经打开浏览器')
    logger.warning('开始输入词条')
    driver.find_element_by_id("kw").send_keys("华测教育")
    logger.error('开始点击百度一下按钮')
    driver.find_element_by_id("su").click()
    time.sleep(2)
    driver.quit()
    logger.critical('关闭浏览器')

猜你喜欢

转载自blog.csdn.net/shenshenruoxi/article/details/108023029