news 2026/6/10 20:46:34

从零搭建完整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/6/9 22:29:19

ESP32 控制 NRF24L01 2.4G通信例子

NRF24L01 是一款低成本、低功耗的 2.4G 无线通信模块&#xff0c;搭配 ESP32 使用时基于 SPI 通信&#xff0c;通过RF24库可快速实现无线数据收发。本文从实际项目中提取 NRF24L01 核心通信代码&#xff0c;编写纯接收端和纯发送端最小示例&#xff0c;去掉冗余的 WiFi、网页、…

作者头像 李华
网站建设 2026/6/10 12:31:36

不只“除甲醛”:深挖HNOSS产品体系,看专业服务如何守护家庭呼吸安全

在信息纷杂的除甲醛市场&#xff0c;消费者常常陷入技术名词与效果承诺的迷雾。真正的决策依据&#xff0c;应回归可验证、可体验的产品核心优势。本文将以行业专业视角&#xff0c;深度剖析HNOSS如何通过具象化的技术、产品与服务矩阵&#xff0c;将“健康空气”转化为一套值得…

作者头像 李华
网站建设 2026/6/10 12:33:02

2025年商标注册量最多的省和类别,这个又遥遥领先!

近日商标局发布了2025年四季度各省、自治区、直辖市商标注册申请量、注册量按类别统计表&#xff0c;普推知产商标老杨统计分析发现出来在2025年商标注册申请的一些关键数据。商标注册申请量排名前十的省分别是&#xff0c;广东省&#xff0c;浙江省&#xff0c;山东省&#xf…

作者头像 李华
网站建设 2026/6/10 14:34:39

远程Feign调用失败后的处理措施:确保服务高可用

引言 在微服务架构中&#xff0c;远程调用是不同服务之间进行交互的重要方式&#xff0c;Feign作为Spring Cloud中的一种声明式HTTP客户端&#xff0c;广泛用于简化服务间的远程调用。尽管Feign使得远程调用变得简便&#xff0c;但在实际运行中&#xff0c;由于网络波动、服务不…

作者头像 李华