Python+Selenium中级篇之8-Python自定义封装一个简单的Log类

栏目: Python · 发布时间: 6年前

内容简介:Python+Selenium中级篇之8-Python自定义封装一个简单的Log类

本文介绍如何写一个 Python 日志类,用来输出不同级别的日志信息到本地文件夹下的日志文件里。为什么需要日志输出呢,我们需要记录我们测试脚本到底做了什么事情,最好的办法是写事件监听。这个事件监听,对我们现在来说,还是有点复杂去理解,所以我这里,选择封装一个简单的日志类,同样达到这个效果。 我们大概需要如下日志输出效果:

Python+Selenium中级篇之8-Python自定义封装一个简单的Log类
问题分析: 我们需要封装一个简单的日志类,主要有以下内容: 1.生成的日志文件格式是年月日时分秒.log 2.生成的xxx.log文件存储在项目根目录下Logs文件夹下 3.这个日志类,支持INFO,ERROR两种日志级别 4.日志里,每行日志输出,如上图,时间日期+执行类名称+日志级别+日志描述 解决问题思路: 1.在根目录下新建一个Logs的文件夹,如何获取这个Log的相对路径,前面介绍过。 2.日志的保存命名,需要系统时间,前面也介绍过时间格式化输出 3. Python中有一个logging模块来支持我们自定义封装一个新日志类。 4.在脚本里,初始化一个日志类的实例对象,然后去控制输出INFO还是ERROR日志信息。 自定义日志类封装如下:logger.py,新建在test包下

Python+Selenium中级篇之8-Python自定义封装一个简单的Log类

# _*_ 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

新写一个测试日志类,相关代码如下:

Python+Selenium中级篇之8-Python自定义封装一个简单的Log类

# 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类》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Kotlin程序员面试算法宝典

Kotlin程序员面试算法宝典

孙伟、楚秦 / 机械工业出版社 / 2018-12 / 69

本书是一本讲解程序员面试笔试算法的书籍。在写法上,除了讲解如何解答算法问题以外,还引入了例子辅以说明,以便读者能够更加容易地理解。 本书将程序员面试笔试过程中的各类算法类真题一网打尽。在题目的广度上,通过各种渠道,搜集了近3年来几乎所有IT企业面试笔试算法高频题目,所选择题目均为企业招聘使用题目;在题目的深度上,本书由浅入深、庖丁解牛式地分析每一个题目,并提炼归纳,同时,引入例子与源代码、时......一起来看看 《Kotlin程序员面试算法宝典》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具