------------恢复内容开始------------

简介:

自己也在训练营学习之中,闲来之余,自己写着玩的,主要还是为了学习,希望和前辈和大佬相互学习共进。

日志模块主要有四大组件:日志器,过滤器,格式器,处理器。

  • 日志器 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自动化之封装日志模块(一)的更多相关文章

  1. python中的第三方日志模块logging

    基本上每个系统都有自己的日志系统,可以使自己写的,也可以是第三方的.下面来简单介绍一下python中第三方的日志模块,入手还是比较简单的,但是也很容易给自己埋雷. 下面是我参考的资料链接 入手demo ...

  2. python中的logging日志模块

    日志是程序不可或缺的一部分.它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会. logging给我们提供了五种函数用来输出日志:debu ...

  3. Python入门之logging日志模块以及多进程日志

    本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python ...

  4. [Python] iupdatable包:日志模块使用介绍

    一.说明 日志模块是对 logging 模块的单例封装 特点: 可同时向控制台和文件输出日志,并可选择关闭其中一种方式的输出: 集成colorlog,实现根据日志等级不同,控制台输出日志颜色不同: 灵 ...

  5. 【python接口自动化】- logging日志模块

    前言:我们之前运行代码时都是将日志直接输出到控制台,而实际项目中常常需要把日志存储到文件,便于查阅,如运行时间.描述信息以及错误或者异常发生时候的特定上下文信息. logging模块介绍 ​ Pyth ...

  6. python自动化开发-[第六天]-常用模块、面向对象

    今日概要: 1.常用模块 - os模块 - random模块 - shutil模块 - hashlib模块 - pickle/json模块 - shelve模块 - configparser模块 - ...

  7. python自动化运维常用模块安装

    1.系统信息性能模块:psutil 源码安装: wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz -- ...

  8. python自动化开发-6-常用模块-续1

    json和pickle模块:用于序列化的模块. 序列化:我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serializatio ...

  9. python自动化开发-6-常用模块-续

    python的常用模块(续) shelve模块:是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式. configparser模块:对配置文件进行 ...

随机推荐

  1. Scala 关键字

    Java关键字 Java 一共有 50 个关键字(keywords),其中有 2 个是保留字,目前还不曾用到:goto 和 const.true.false 和 null 看起来很像关键字,但实际上只 ...

  2. 安装oracle 时“[INS-30014]无法检查指定的位置是否位于 CFS上”问题

    错误截图: 错误信息: [INS-30014]无法检查指定的位置是否位于 CFS上 解决方案: 通过修改hosts文件,向C:\Windows\System32\drivers\etc\hosts文件 ...

  3. Windows 10正式版官方原版镜像!(备忘)

    本文搜集整理微软官方发布的Windows 10正式版镜像下载链接,从RTM原始正式版开始,按照时间倒序排列,即越往上的越新. 注意:以下资源均来自于微软官方原版,ed2k可视为P2P下载链接.下载完成 ...

  4. 机器学习实战二:波士顿房价预测 Boston Housing

    波士顿房价预测 Boston housing 这是一个波士顿房价预测的一个实战,上一次的Titantic是生存预测,其实本质上是一个分类问题,就是根据数据分为1或为0,这次的波士顿房价预测更像是预测一 ...

  5. Ubuntu 16.04安装PyCharm

    PyCharm一个是Python集成开发环境,它既提供收费的专业版,也提供免费的社区版本.PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Proj ...

  6. 出现异常org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

    这是因为yaml的配置文件格式出错导致的异常 原代码,仔细看数据源的配置没有和type的路径一致,而是下一级的目录,所以导致出错 使用shift+tab快捷键向左移动改变下就好了 最后成功运行

  7. Django(47)drf请求生命周期分析

    前言   一般我们写完序列化以后,我们就会开始写视图了,drf中我们一般使用CBV的方式,也就是类视图的方式,最基础的我们会使用from rest_framework.views import API ...

  8. python 获取时间范围内日期列表

    python 获取时间范围内日期列表 import datetime def dateRange(beginDate, endDate): dates = [] dt = datetime.datet ...

  9. Map / Set / Treeset 取出指定下标index的元素

    Treeset 属于 set  集合中的一种数据类型,HashSet 以及LinkedHashSet 原理相同 需求:想直接在Treeset类型下,取出指定下标的元素,但是Set 下没有 get()方 ...

  10. GPU加速:宽深度推理

    GPU加速:宽深度推理 Accelerating Wide & Deep Recommender Inference on GPUs 推荐系统推动了许多最流行的在线平台的参与.随着为这些系统提 ...