UI自动化学习笔记- 日志相关操作
一、日志相关
1、日志
概念:日志就是用于记录系统运行时的信息,对一个事件的记录,也称log
1.1 日志的作用
- 调试程序
- 了解系统程序运行的情况,是否正常
- 系统程序运行故障分析与问题定位
- 用来做用户行为分析和数据统计
1.2 日志级别
级别:指日志信息的优先级、重要性、严重程度
常见的日志级别
日志级别 描述 DEBUG 调试级别,打印非诚详细的日志信息,通畅用于对代码的调试 INFO 信息级别,打印一般的日志信息,突出强调程序的运行过程 WARNING 警告级别,打印警告日志信息,表明会出现潜在错误的情形,一般不影响软件的正常使用 ERROR 错误级别,打印错误异常信息,该级别的错误可能会导致系统的一些功能无法正常使用 CRITICAL 严重级别错误,一个严重的错误,这表明系统可能无法继续运行 说明
- 上面列表中的日志级别是从上到下一次升高,即:DEBUG< INFO<WARNING<ERROR<CRITICAL
- 当程序指定一个日志级别后,程序会记录所有日志级别大于或等于指定日志级别的日志信息,而不是仅仅记录指定级别的日志信息
- 一般建议只使用前四个级别
2、logging模块
2.1 基本用法
import logging
loging.debug('这是一条调试信息')
logging.info('这是一条普通信息')
logging.warning('这是一条警告信息')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误信息')
2.2 设置日志级别
logging.basicConfig(logging.DEBUG)
2.3 设置日志格式
默认的日志的格式为:
日志级别:Logger名称:日志内容
自定义日志格式:
logging.basicConfig(format = "%(levelname)s : %(message)s")
2.4 将日志信息输出到文件中
默认情况下Python的logging模块将日志打印到了标准输出中(控制台)
将日志信息输出到文件中:
logging.basicConfig(filename='a.log')
3、日志的高级用法
3.1、logging 日志模块四大组件
组件名称 类名 功能描述 日志器 Logger 提供了程序使用日志的入口 处理器 Hander 将logger创建的日志记录发送到合适的目的输出 格式器 Formatter 决定日志记录的最终输出格式 过滤器 Filter 提供了更细粒度的控制工具来决定输出哪条日志记录,丢弃哪条日志记录
3.2、模块关系
日志器:提供了,记录日志的入口
处理器:政治将日志器内容发送到控制台或文件或网络,都是处理器干的;每个日志器都可以添加多个不同的处理器
格式器:处理器可以设置不同的格式,就需要使用格式器
过滤器:处理器需要过滤日志信息,就需要设置过滤器
3.3、Logger类
Logger对象任务:
- 向程序暴露记录日志的方法
- 基于日志级别或Filter对象觉得要对那些日志进行后续处理
- 将日志消息传送给所有感兴趣的日志handles
如何创建Logger对象
logger = logging.getLogger()
logger = logging.getLogger("myLogger")
logging.getLogger()方法有一个可选参数name, 改参数表示将要返回的日志器的名称标识,如果不提供该参数,则返回root日志对象。若以相同的name参数值多次调用getLogger()方法,将会返回指向同一个logger对象的引用
Logger常用的方法
| 方法 | 描述 |
|---|---|
| logger.debug() 、logger.info()、logger.warming()、logger.error()、logger.critical() | 打印日志 |
| logger.setLevel() | 设置日志器将会处理的日志消息的最低严重级别 |
| logger.addHandler() | 为该logger对象添加一个handler对象 |
| logger.addFilter() | 为该logger对象添加一个filter对象 |
UI自动化学习笔记- 日志相关操作的更多相关文章
- UI自动化学习笔记- Selenium元素定位及元素操作
一.元素定位 1. 如何进行元素定位? 元素定位就是通过元素的信息或元素层级结构来定位元素的 2.定位工具 浏览器开发者工具 3.元素定位方式 Selenium提供了八种定位元素方式 id name ...
- UI自动化学习笔记- Selenium一些特殊操作的处理
一.特殊操作处理 1. 下拉选择框操作 1.1 如何操作下拉选择框 实现方式一 思路:先定位到要操作的option元素,然后执行点击操作 driver.find_element_by_css_sele ...
- UI自动化学习笔记- UnitTest单元测试框架详解
一.UnitTest基本使用 1. UnitTest框架 1.1 什么是框架 说明: 框架英文单词frame 为解决一类事情的功能集合 1.2什么是UnitTest框架 概念:UnitTest是pyt ...
- UI自动化学习笔记- PO模型介绍和使用
一.PO模型 1.PO介绍:page(页面) object(对象) 在自动化中,Selenium 自动化测试中有一个名字经常被提及 PageObject (思想与面向对象的特征相同),通常PO 模型可 ...
- jQuery学习笔记--JqGrid相关操作 方法列表(上)
1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridi ...
- UI自动化学习笔记- Selenium元素等待(强制等待、显示等待、隐式等待)
一.元素等待 1. 元素等待 1.1 什么是元素等待 概念:在定位页面元素时如果未找到,会在指定时间内一直等待的过程 意思就是:等待指定元素已被加载出来之后,我们才去定位该元素,就不会出现定位失败的现 ...
- Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例
---------------------------------------------------------------------------------------------------- ...
- MySQL学习笔记-事务相关话题
事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...
- Android自动化学习笔记:编写MonkeyRunner脚本的几种方式
---------------------------------------------------------------------------------------------------- ...
随机推荐
- redis不完整的事务实现Transaction
使用场景 redis一个命令执行是单线程的,不用担心并发冲突,如果你想有几个命令想像一个命令一样,在这几个命令执行过程中不会执行别的客户端发来的命令 ,也就是原子性,就可以用 redis Transa ...
- [UWP] WinUI 2.6 使用指南
2021年6月24日,Windows 11 正式对外发布,对于UWP开发者来说,这一天同样值得纪念,因为WinUI 2.6也正式发布了! 相同的时间点意味着一件事,即WinUI 2.6和Windows ...
- matplotlib 并列条形图
1 绘制并列条形图,并在条形图上加标注 1.1 代码 from matplotlib import pyplot from matplotlib import font_manager import ...
- c#json将字符串反序列化成对象时不新建类的做法
在服务端代码文件中加上struct结构体就能解决 struct LocationInfo { public string LocationID { get; set; } public string ...
- react中 props,state,render函数的关系
1.当组件的 state 或者 props 发生改变的时候,自己的render函数就会重新执行. 2. 当父组件的render函数执行时,其所有子组件的render函数都会重新执行.
- .NET 云原生架构师训练营(设计原则与模式)--学习笔记
在复杂系统的架构设计中引入设计原则与模式,能够极大降低复杂系统开发.和维护的成本 目录 几个问题 为什么要学习设计模式 优良架构设计的具体指标 理解复杂系统 面向对象思想(指导复杂系统的分析.设计.实 ...
- Redis高并发快的3大原因详解
1. Redis的高并发和快速的原因 1.redis是基于内存的,内存的读写速度非常快: 2.redis是单线程的,省去了很多上下文切换线程的时间: 3.redis使用多路复用技术,可以处理并发的连接 ...
- 全新安装Windows版 Atlassian Confluence 7.3.1 + MySQL 8.0,迁移数据,并设置服务自启
Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki.使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息.文档协作.集体讨论,信息推送. 安装Conflu ...
- http连接复用进化论
HTTP协议是应用层协议,它定义万维网客户端如何与服务器进行通信.它在传输层的TCP协议的基础上进行数据传输 HTTP 1.0 在HTTP 1.0时代,默认一个http请求对应一个TCP连接,没有任何 ...
- MyBatis:条件构造器QueryWrapper方法详解
QueryWrapper 说明: 继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件及 LambdaQueryWrapper, 可以通过 n ...