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

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

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

查看所有标签

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

Domain-Driven Design Distilled

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 压缩/解压工具

在线压缩/解压 CSS 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具