news 2026/5/13 10:39:12

从零搭建完整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/5/10 13:19:05

外包干了17天,技术倒退明显

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01; 而我已经在一个企业干了四年的功能…

作者头像 李华
网站建设 2026/5/10 13:17:03

以下7种硬件测试的种类,不知道的赶紧收藏了!

硬件产品测试的 7 大种类 信号质量测试 时序测试 功能测试 性能测试 容错测试 长时间测试 一致性测试 信号质量测试 1.信号质量测试&#xff1a; 信号质量测试&#xff0c;是很底层与直接的一项测试&#xff0c;需要对硬件板卡本身有相当的了解才能进行。另外&#xff0c;板…

作者头像 李华
网站建设 2026/5/10 13:16:57

常用API

成员变量与局部变量 包 String集合

作者头像 李华
网站建设 2026/5/10 11:54:20

Python 初级入门教程:从零开始掌握编程基础

目录 引言一、Python 简介与特点二、环境搭建与准备工作三、Python 基础语法详解3.1 变量与数据类型3.2 控制结构3.3 函数定义与使用 四、常用数据结构与操作4.1 列表操作4.2 字典操作 五、文件操作与异常处理5.1 文件操作5.2 异常处理 六、实用案例&#xff1a;学生成绩管理系…

作者头像 李华
网站建设 2026/5/13 6:38:50

AI产品经理转型指南:从零入行大模型产品经理的核心能力与实战路径_0经验如何快速转型AI产品经理?

文章分析了AI产品经理岗位的热门现状及转型难点&#xff0c;指出经验与岗位要求不匹配是主要问题。介绍了专业型和应用层两类AI产品经理能力模型&#xff0c;强调了产品建设能力、行业理解、技术理解和AI落地经验四大核心能力。最后推荐了产品经理私教陪跑实战营&#xff0c;提…

作者头像 李华