Python+Selenium进阶版- Python自定义封装一个简单的Log类

Posted 给自己一个向前进的理由

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python+Selenium进阶版- Python自定义封装一个简单的Log类相关的知识,希望对你有一定的参考价值。

  目标:如何写一个Python日志类,用来输出不同级别的日志信息到本地文件夹下的日志文件里。

  练习场景:

  我们需要封装一个简单的日志类,主要有以下内容:

  1.生成的日志文件格式是 年月日分秒.log

  2.生成的XXX.log文件存储在项目根目录下Logs文件夹下

  3.这个日志类,支持INFO,ERROR两种日志级别

  4.日志里,每行日志输出,时间日期+执行类名称+日志级别+日志描述

  解决思路:

  1.在根目录下新建一个Logs的文件夹,获取这个Log的相对路径;

  2.日志的保存命名,需要系统时间;

  3.Python中有一个logging模块来支持我们自定义封装一个新日志类;

  4.在脚本里,初始化一个日志类的实例对象,然后控制输出INFO还是ERROR日志信息。

  自定义日志类封装如下:logger.py ,新建在test1包下:

import logging
import os.path
import time

class Logger(object):

    def __init__(self,logger):
        """
        指定保存日志的文件路径,日志级别,以及调用文件
        将日志存入到指定文件中
        :param logger:
        """
        # 创建一个logger
        self.logger = logging.getLogger(logger)
        self.logger.setLevel(logging.DEBUG)

        # 创建一个handler,用于写入日志文件
        rq = time.strftime(\'%Y%m%d%H%M\',time.localtime(time.time()))
        log_path = os.path.dirname(os.getcwd()) + \'/Logs/\'
        log_name = log_path + rq + \'.log\'
        fh = logging.FileHandler(log_name,encoding=\'utf-8\')
        fh.setLevel(logging.INFO)

        # 再创建一个handler,用于输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(logging.INFO)

        # 定义handler的输出格式
        formatter = logging.Formatter(\'%(asctime)s - %(name)s - %(levelname)s - %(message)s\')
        fh.setFormatter(formatter)
        ch.setFormatter(formatter)

        # 给logger添加handle
        self.logger.addHandler(fh)
        self.logger.addHandler(ch)

    def getlog(self):
        return self.logger

  

  test_log.py代码:

# coding = utf-8
import time
from selenium import webdriver
from test1.logger import Logger

mylogger = Logger(logger=\'TestMylog\').getlog()
class TestMyLog(object):
    def print_log(self):
        driver = webdriver.Chrome()
        mylogger.info("打开浏览器。")
        driver.maximize_window()
        mylogger.info("最大浏览器窗口。")
        driver.implicitly_wait(8)

        driver.get("https://www.baidu.com")
        mylogger.info("打开百度首页。")
        time.sleep(1)
        mylogger.info("暂停一秒。")
        driver.quit()
        mylogger.info("关闭并退出浏览器。")

testlog = TestMyLog()
testlog.print_log()

  

运行结果:

控制台:

 

 文件:

 

 

 

以上是关于Python+Selenium进阶版- Python自定义封装一个简单的Log类的主要内容,如果未能解决你的问题,请参考以下文章

Python 爬虫利器 Selenium 从入门到进阶

Selenium自动化测试Python三:WebDriver进阶

python自动化测试应用-第7篇(WEB测试)--Selenium进阶篇

《手把手教你》系列进阶篇之2-python+ selenium自动化测试 - python基础扫盲(详细教程)

爬虫进阶Selenium入门好文,强烈推荐 ! ! !

selenium3+Python+firefox53 兼容问题