内容简介:Python+Selenium中级篇之8-Python自定义封装一个简单的Log类
本文介绍如何写一个 Python 日志类,用来输出不同级别的日志信息到本地文件夹下的日志文件里。为什么需要日志输出呢,我们需要记录我们测试脚本到底做了什么事情,最好的办法是写事件监听。这个事件监听,对我们现在来说,还是有点复杂去理解,所以我这里,选择封装一个简单的日志类,同样达到这个效果。 我们大概需要如下日志输出效果:
# _*_ coding: utf-8 _*_
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)
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添加handler
self.logger.addHandler(fh)
self.logger.addHandler(ch)
def getlog(self):
return self.logger
新写一个测试日志类,相关代码如下:
# coding=utf-8
import time
from selenium import webdriver
from test.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
在PyCharm里运行下这个测试类,会在根目录下的Logs文件下,新建一个日志文件,打开效果如文章开头的日志输出图。好了,关于自定义封装log类,自己好好去读下代码,理解下每行代码的意思,日志类的封装和调用就介绍到这里。
欢迎关注凯哥公众号 :凯哥Java
以上所述就是小编给大家介绍的《Python+Selenium中级篇之8-Python自定义封装一个简单的Log类》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 自定义MVC框架-封装模型层
- 封装自己的自定义转场组件
- 自定义MVC框架 -封装控制器层
- 详解自定义ajax支持跨域组件封装
- 自定义MVC框架-封装控制器基类
- SilkETW:一款针对Windows事件追踪的自定义C#封装工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。