内容简介: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类》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Domain-Driven Design Distilled
Vaughn Vernon / Addison-Wesley Professional / 2016-6-2 / USD 36.99
Domain-Driven Design (DDD) software modeling delivers powerful results in practice, not just in theory, which is why developers worldwide are rapidly moving to adopt it. Now, for the first time, there......一起来看看 《Domain-Driven Design Distilled》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
RGB CMYK 转换工具
RGB CMYK 互转工具