Python自动化之封装日志模块(一)
------------恢复内容开始------------
简介:
自己也在训练营学习之中,闲来之余,自己写着玩的,主要还是为了学习,希望和前辈和大佬相互学习共进。
日志模块主要有四大组件:日志器,过滤器,格式器,处理器。
- 日志器 Logger:提供程序一直使用的接口;
- 处理器Handler:将日志器创建的日志记录输出到指定位置,不同的处理器可将日志输出到不同的位置;
- 过滤器Filter:过滤日志,输出哪条日志记录,丢弃哪条日志记录;
- 格式器Formatter:日志记录的最终输出格式;
日志级别:
- debug : 调试级别
- info : 正常级别
- warning : 警告级别
- error : 错误,指的是程序层级问题
- critical : 严重问题,程序崩溃类问题
下面是我自己封装的日志类:
class WebLog:
def __init__(self):
self.logger = logging.getLogger()
self.logger.setLevel(logging.INFO)
def setLogHandle(self):
# 创建日志格式
fmt = '\n' + '%(asctime)s - %(filename)s:%(lineno)s - %(message)s'
fm = logging.Formatter(fmt)
# 创建处理器
sh = logging.StreamHandler()
filename = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
fh = logging.FileHandler('./log/my_log.log',encoding='utf-8')
# 把设置的日志放入控制台
self.logger.addHandler(sh)
self.logger.addHandler(fh)
# 设置格式
fh.setFormatter(fm)
sh.setFormatter(fm)
return self.logger
在其他程序中调用该类输出到控制台中:

也可以输出到指定路径下,以文件形式保存下来
2021-04-26 14:04:01,318 - practice5.py:13 - 初始化driver<selenium.webdriver.chrome.webdriver.WebDriver (session="2acf50c53f708f1f9c33e59f7e3f8114")> 2021-04-26 14:04:01,319 - practice5.py:18 - 正在访问网址http://www.baidu.com 2021-04-26 14:04:01,907 - practice5.py:26 - 正在定位id元素,元素值为kw,输入的内容为秋水 2021-04-26 14:04:02,044 - practice5.py:33 - 正在定位id元素,元素值为su,进行点击 2021-04-26 14:04:02,159 - practice5.py:39 - 正在等待 2021-04-26 14:04:05,160 - practice5.py:33 - 正在定位xpath元素,元素值为//*[@id="1"]/h3/a/em,进行点击 2021-04-26 14:04:05,294 - practice5.py:39 - 正在等待 2021-04-26 14:04:08,296 - practice5.py:43 - 关闭浏览器 2021-04-26 14:12:26,593 - practice5.py:13 - 初始化driver<selenium.webdriver.chrome.webdriver.WebDriver (session="b7da4ec5a7843475711685c1be7f85f6")> 2021-04-26 14:12:26,593 - practice5.py:18 - 正在访问网址http://www.baidu.com 2021-04-26 14:12:27,285 - practice5.py:26 - 正在定位id元素,元素值为kw,输入的内容为秋水 2021-04-26 14:12:27,519 - practice5.py:33 - 正在定位id元素,元素值为su,进行点击 2021-04-26 14:12:27,642 - practice5.py:39 - 正在等待 2021-04-26 14:12:30,643 - practice5.py:33 - 正在定位xpath元素,元素值为//*[@id="1"]/h3/a/em,进行点击 2021-04-26 14:12:30,733 - practice5.py:39 - 正在等待 2021-04-26 14:12:33,734 - practice5.py:43 - 关闭浏览器 2021-04-28 11:03:35,572 - practice5.py:13 - 初始化driver<selenium.webdriver.chrome.webdriver.WebDriver (session="3679b7d78552cf68bf11ed42129de9af")> 2021-04-28 11:03:35,573 - practice5.py:18 - 正在访问网址http://www.baidu.com 2021-04-28 11:03:36,245 - practice5.py:26 - 正在定位id元素,元素值为kw,输入的内容为秋水 2021-04-28 11:03:36,349 - practice5.py:33 - 正在定位id元素,元素值为su,进行点击 2021-04-28 11:03:36,478 - practice5.py:39 - 正在等待 2021-04-28 11:03:39,479 - practice5.py:33 - 正在定位xpath元素,元素值为//*[@id="1"]/h3/a/em,进行点击 2021-04-28 11:03:39,542 - practice5.py:39 - 正在等待 2021-04-28 11:03:42,544 - practice5.py:43 - 关闭浏览器
------------恢复内容结束------------
Python自动化之封装日志模块(一)的更多相关文章
- python中的第三方日志模块logging
基本上每个系统都有自己的日志系统,可以使自己写的,也可以是第三方的.下面来简单介绍一下python中第三方的日志模块,入手还是比较简单的,但是也很容易给自己埋雷. 下面是我参考的资料链接 入手demo ...
- python中的logging日志模块
日志是程序不可或缺的一部分.它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会. logging给我们提供了五种函数用来输出日志:debu ...
- Python入门之logging日志模块以及多进程日志
本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python ...
- [Python] iupdatable包:日志模块使用介绍
一.说明 日志模块是对 logging 模块的单例封装 特点: 可同时向控制台和文件输出日志,并可选择关闭其中一种方式的输出: 集成colorlog,实现根据日志等级不同,控制台输出日志颜色不同: 灵 ...
- 【python接口自动化】- logging日志模块
前言:我们之前运行代码时都是将日志直接输出到控制台,而实际项目中常常需要把日志存储到文件,便于查阅,如运行时间.描述信息以及错误或者异常发生时候的特定上下文信息. logging模块介绍 Pyth ...
- python自动化开发-[第六天]-常用模块、面向对象
今日概要: 1.常用模块 - os模块 - random模块 - shutil模块 - hashlib模块 - pickle/json模块 - shelve模块 - configparser模块 - ...
- python自动化运维常用模块安装
1.系统信息性能模块:psutil 源码安装: wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz -- ...
- python自动化开发-6-常用模块-续1
json和pickle模块:用于序列化的模块. 序列化:我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serializatio ...
- python自动化开发-6-常用模块-续
python的常用模块(续) shelve模块:是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式. configparser模块:对配置文件进行 ...
随机推荐
- 011.Python的列表的相关操作
一 列表的相关操作 1.1 列表的拼接 lst1 = [1,2,3] lst2 = [4,5,6] res = lst1 + lst2 print(res) 执行 [root@node10 pyth ...
- FD_SET -(转自 kakaxia6337的专栏)
FD_ZERO,FD_ISSET这些都是套节字结合操作宏 看看MSDN上的select函数, 这是在select io 模型中的核心,用来管理套节字IO的,避免出现无辜锁定. int se ...
- .NET6系列:微软正式宣布Visual Studio 2022
系列目录 [已更新最新开发文章,点击查看详细] 首先,我们要感谢正在阅读这篇文章的你,我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意 ...
- Qt 设置中文
1. 前言 在编写Qt应用程序时,有时会希望能直接设置中文字符串到界面,总结下其设置方法. 2. 设置中文 1)运行环境Qt5.5 VS2013 2)首先,查看需要设置中文的文件是否为UTF-8格式, ...
- leetcode中Java关于Json处理的依赖
leetcode的java代码提供的main函数中,往往有关于json的依赖...我找了许久才找到他们用的是这个json实现 <dependency> <groupId>com ...
- Nginx的超时timeout配置详解
Nginx的超时timeout配置详解 本文介绍 Nginx 的 超时(timeout)配置. Nginx 处理的每个请求均有相应的超时设置.如果做好这些超时时间的限定,判定超时后资源被释放,用来处理 ...
- pytest - 失败重运行机制:rerun
失败重运行机制 用例失败的情况下,可以重新运行用例 一旦用例失败,马上重新运行 安装插件:pip install pytest-rerunfailures 使用命令:--reruns 重试次数 如 - ...
- CAP 5.1 版本发布通告 - 你期待的 Redis 来了
前言 今天,我们很高兴宣布 CAP 发布 5.1 版本正式版,在这个版本里我们同样引入了更多令人激动的新特性和改进,同时也得到越来越多人的喜爱. 得益于社区的反馈和贡献者的支持,在过去的两个月里,我们 ...
- 在pycham中安装win32
导言:在应用import win32时,需要先在pycham 中安装pywin32 ,如下为安装步骤. 一.升级pycham中的pip为最新的版本 备注:如果pip不是最新版本,直接安装pywin3 ...
- JVM-gcRoots 和 强引用,软引用, 弱引用, 虚引用, 代码演示和应用场景
什么是垃圾? 什么是gcRoots, 谈谈你对 强, 软, 弱 , 虚引用的理解, 他们的应用场景 jvm采用可达性分析法: 从gcRoots集合开始,自上向下遍历,凡是在引用链上的对象,都不是垃圾, ...