news 2026/3/30 0:12:19

从零搭建完整python自动化测试框架logging日志模块详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零搭建完整python自动化测试框架logging日志模块详解
前言

logging: 看作一个办公室

logger: 看作办公室的一台打印机

FileHandler: 看作薄文件纸

StreamHandler: 看作厚文件纸

认识了以上几个东西,就好办了,要写日志,就是要打印文件,先从办公室获取打印机,再从办公室获取薄文件纸和厚文件纸,然后把文件纸格式处理下,放到打印机里面,最后开始打印信息就行了。

下面我们就来详细分析一下logging日志模块

一、logging模块介绍

是Python内置的标准模块,主要用于输出运行日志

为什么要使用日志?

日志: 系统在运行过程中的一些信息,系统日志、运行日志、错误日志、用户操作等等

要求:1. 所有日志需要可查,所有的日志需要保留下来,可以查看

2.日志需要分级别设置

二、输出日志到日志文件

控制台日志

import logging logger = logging.getLogger(__name__) logger.setLevel(level=logging.INFO) #创建一个控制台输出的日志对象 console=logging.StreamHandler() #设置日志的格式 formatter=logging.Formatter(‘%(asctime)s – %(filename)s[line:%(lineno)d] – %(levelname)s: %(message)s’) console.setFormatter(formatter) logger.addHandler(console) logger.debug('—–调试信息[debug]—–') logger.info(‘—–有用的信息[info]—–‘) logger.warning('—–警告信息[warning]—–') logger.error('—–错误信息[error]—–') logging.critical('—–严重错误信息[critical]—–')

输出日志到log文件

import os import logging #设置日志路径 current_path=os.path.dirname(__file__) log_path=os.path.join(current_path,‘../logs/test.log’) #创建logger日志对象 logger = logging.getLogger(__name__) logger.setLevel(level=logging.INFO) #创建一个文件输出的日志对象 file_log=logging.FileHandler(log_path) #设置日志格式 formatter=logging.Formatter(‘file:%(asctime)s – %(filename)s[line:%(lineno)d] – %(levelname)s: %(message)s’) file_log.setFormatter(formatter) #把文件输出的日志对象 传给logger日志对象 logger.addHandler(file_log) logger.debug(''—–调试信息[debug]—–'') logger.info(''—–有用的信息[info]—–'') logger.warning(''—–警告信息[warning]—–'') logger.error(''—–错误信息[error]—–'') logger.critical(''—–严重错误信息[critical]—–'') logger.info(‘Hello word!!!’)

把控制台输出日志,文件输出日志放一起

encoding: utf-8 # @author: newdream_daliu # @file: log_demo2.py # @time: 2022-10-06 17:03 # @desc: 输出日志到文件 import os import logging #设置log日志文件的存放位置 current_path=os.path.dirname(__file__) log_path=os.path.join(current_path,‘../logs/2022_10_06_test.log’) # print(log_path) logger=logging.getLogger(__name__) logger.setLevel(level=logging.INFO) #控制台日志 console=logging.StreamHandler() formatter=logging.Formatter(‘%(asctime)s – %(filename)s[line:%(lineno)d] – %(levelname)s: %(message)s’) console.setFormatter(formatter) logger.addHandler(console) #文件日志 #创建一个log文件日志对象 file_log=logging.FileHandler(log_path,encoding=‘utf-8’) #设置文件日志输出格式 formatter=logging.Formatter(‘file:%(asctime)s – %(filename)s[line:%(lineno)d] – %(levelname)s: %(message)s’) file_log.setFormatter(formatter) logger.addHandler(file_log) logger.info(''——-新梦想IT职业教育———–'') logger.error(''———测试失败,元素识别失败————-'') logger.debug(''—–调试信息[debug]—–'') logger.info(''—–有用的信息[info]—–'') logger.warning(''—–警告信息[warning]—–'') logger.error(''—–错误信息[error]—–'') logger.critical(''—–严重错误信息[critical]—–'')
三、日志级别的讲解及设置

DEBUG:调试信息
INFO:有用的信息
WARNING:警告信息 (默认日志级别)
ERROR:错误信息
CRITICAL:严重错误信息
NOTSET:非级别,表示不设置,按照父logger级别来过滤日志

方式1:

日志级别关系:

NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL

备注:如果把log的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出。也就是说,日志级别越高,打印的日志越不详细。

方式2:

log日志级别 NOTSET=0,DEBUG=10 INFORO=20 WARNING=30 ERROR=40 CRITICAL=50

找到setLevel,设置为具体的数字

logger.setLevel(level=40)

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/23 7:06:35

那么多优秀的自动化测试工具,而你只知道Selenium?

如今&#xff0c;作为一名软件测试工程师&#xff0c;几乎所有人都需要具备自动化测试相关的知识&#xff0c;并且懂得如何去利用工具&#xff0c;来为企业减少时间成本和错误成本。这是为什么呢&#xff1f; 在以前&#xff0c;测试人员一般都只需要扮演终端用户&#xff0c;…

作者头像 李华
网站建设 2026/3/26 15:35:29

考研408--数据结构--day5--栈与队列的应用

&#xff08;以下内容全部来自上述课程&#xff09; 目录栈1. 括号匹配问题1.1 概述1.2 算法演示1.3 算法实现1.4 小结2. 表达式求值问题2.1 引言2.2 简述2.3 中转后&#xff08;手算&#xff09;2.4 后缀表达式的计算2.4.1 手算2.4.2 机算2.5 中转前&#xff08;手算&#xff…

作者头像 李华
网站建设 2026/3/21 13:12:18

中老年线上学习发展:兴趣岛“内容+服务+空间”融合赋能下的体验升级

从早期通过新媒体传播兴趣知识的探索者&#xff0c;到确立“线上与线下融合的成人兴趣学习平台”的定位&#xff0c;兴趣岛完成了一次从内容提供者到深度服务生态构建者的战略演进。截至目前&#xff0c;兴趣岛App注册用户已突破5000万&#xff0c;是中国中老年第一大兴趣学习平…

作者头像 李华
网站建设 2026/3/27 15:40:46

通义发布Qwen3-Coder-Next:面向自主Coding Agents的开源权重模型

通义实验室宣布正式推出 Qwen3-Coder-Next。作为基于 Qwen3-Next 构建的最新一代开源权重模型&#xff0c;它专为驱动下一代自主 Coding Agents 而设计&#xff0c;旨在以极高的效率规划并执行复杂的、长时程的编程任务。Sorry, your browser doesnt support embedded videos. …

作者头像 李华
网站建设 2026/3/22 20:56:44

模拟太阳光条件下太空光伏电池的光电性能测量

三结砷化镓&#xff08;GaInP/InGaAs/Ge&#xff09;光伏电池具备 300~1800nm 宽光谱响应、超 30% 光电转换效率及优异抗辐照性&#xff0c;是航天器在轨运行的核心电源。其光电性能需在 AM0标准条件下标定&#xff0c;以匹配太空环境的太阳辐照特性。地面太阳光模拟器法可控性…

作者头像 李华