Python接口自动化浅析logging日志原理及模块操作流程

发布时间:2026/9/28 4:57:18

Python接口自动化浅析logging日志原理及模块操作流程 关于接口自动化中日志的基本原理, 以及各个模块的具体是怎么进行操作的, 这里做一个简要的探讨与说明。更新时间为二〇二一年八月二十五日具体时刻是上午十点三十四分五十三秒, 文章的作者身份是软件测试以及自动化测试领域的专业人员。这篇文章主要是向大家介绍了关于接口自动化系列文章里对日志原理和模块操作流程的浅析, 文章中非常详细地说明了为什么需要日志, 以及日志到底是什么, 还有像日志用途这些基本的工作原理。在前一篇关于接口自动化测试的系列文章里, 也就是那篇名为“接口自动化浅析数据库操作流程”的文章当中, 其内容主要涵盖了安装这一环节、具体的操作流程、相关的语法基础部分, 以及对能够操作数据类的封装方法进行了介绍。以下的内容主要是为了向大家详细说明关于日志方面的一些基本概念, 并且也会去讲解在操作日志模块的具体流程是怎么样的。一、日志介绍01 为什么需要日志代码要经历开发, 调试, 审查, 测试, 或者上线等不同阶段, 在开发时想要打印的信息类型, 可能和上线后想看到的信息类型完全不同, 也就是说, 在“测试”的时候, 可能只想看警告和错误信息, 然而在“调试”的时候, 可能还想看到跟调试相关的信息, 如果你想打印出使用的模块, 以及代码运行的时间, 那么代码很容易变得混乱。通过使用日志模块, 这些问题的解决工作就会变得相当容易起来。02什么是日志?所谓的日志, 其实就是用来记录系统在运行的过程中所产生的各种信息的, 对于某一个具体事件所进行的记录操作, 通常也被称作是Log。那么, 日志到底有着什么样的用途呢?关于日志的基本用途, 具体表现如下:04 日志的级别分为哪些常见的日志等级的分类情况, 在下面这些内容里可以看到:DEBUG: 调试级别Value10, 打印非常详细的日志信息, 通常仅在Debug时使用, 在算法中每个循环的中间状态这样的环节。INFO: 信息级别Value20, 打印一般的日志信息, 突出强调程序的运行过程 , 主要用于处理请求或者状态变化等日常事务。ERROR: 错误级别Value40, 会打印出错误的异常信息, 属于这一级别的错误可能会对系统造成负面影响, 导致有些功能无法正常起作用, 比如可能会导致输入输出操作失败, 或者是出现连接方面的问题。这是一个严重错误, 它的具体数值是50, 意味着这是一个极其糟糕的问题, 会让系统大概率没法接着正常干活下去, 比如电脑的内存彻底不够用了, 或者硬盘里的剩余空间变成空的了, 这种极端情况在平常日子里一般很少碰得到。05 日志功能的实现现在, 几乎每一个开发语言里面都会自己带着关于记录的这样一个能力。如果没有的话, 大家也都可以去用那些做得比较出色的第三方工具库, 以此来获得处理记录方面的功能支持。像咱们常说的log4j, 它就是一个这样的例子。这些东西整体来说, 实力是很强的。而且用起来的时候也不会感觉到复杂难懂。自身也提供了一个供用户用来进行日志记录操作的标准化库模块, 这个模块的名称就叫做——。二、模块01 模块介绍这个模块是内置的标准模块, 它主要用来完成运行日志的输出工作, 使用者可以设置输出日志的等级, 也可以指定日志保存的路径, 还能配置日志文件要不要进行回滚操作。这是第二个模块, 它所具备的一些有利条件。与print相比而言, 它拥有下面这些方面的长处:03 日志框架的组成日志会暴露函数给那个应用程序, 这个逻辑会基于日志记录器和过滤器的那个级别去决定哪个日志是有效的。日志记录器的工作, 是向相应的处理器传达日志信息, 以便进行具体的处理操作。处理器, 它把由那个日志记录器所搞出来的那些个日志记录信息, 给发送到了那个恰当的存放目的地。过滤器能够提供一种更细致的控制方式, 它可以来决定究竟输出哪些日志记录。在最终的输出结果里面, 格式化器这个功能是用来明确规定日志记录部分应该采用怎样的一种排版布局的。04 具体来讲, 函数里面那些详细的参数到底是什么。就是去创建一个你指的那个名字的文件, 这样子的话, 日志就会被放到那个已经建好的文件里面去。关于文件打开方式这个概念, 如果用户明确指定了某个值的话, 那么系统就会使用该指定的参数, 如果没有特别指定的话, 其默认值是字母“w”, 此外, 这里还可以额外指定为字母“a”。对应当被采用的日志展现样式进行明确的设定与选择。指定日期时间格式level: 表示的是日志级别, 这个级别是进行设置的。使用指定来进行创建。这是一个非常简易的, 有关日志功能的, 小型示例程序。咱们来试试看, 各自输出一条日志级别的日志记录。import logginglogging.debug(This is a debug log.)logging.info(This is a info log.)logging.warning(This is a warning log.)logging.error(This is a error log.)logging.critical(This is a critical log.)输出结果为:root:这是一条记录, 也就是一个日志。ERROR:root:This is a error log.:root:This is a log.为什么debug、info级别日志没输出呢模块提供的默认的日志级别是所以只输出了及以上的日志级别。日志的级别与日志器的名称以及具体的日志内容是通过冒号来进行分隔的。如果用户没有自定义日志器的名称的话, 那么系统会默认使用名为root的名称作为日志器的标识。以下是那段源代码。def getLogger(nameNone):Return a logger with the specified name, creating it if necessary.If no name is specified, return the root logger.if name:return Logger.manager.getLogger(name)else:return root06, 关于自定义日志的部分内容。我们来设置一下日志收集器以及它的级别。# 定义一个日志收集器logger logging.getLogger(ITester)# 设置收集器的级别不设定的话默认收集warning及以上级别的日志logger.setLevel(DEBUG)把日志的格式给设成咱们想要的那样。fmt logging.Formatter(%(filename)s-%(lineno)d-%(asctime)s-%(levelname)s-%(message)s)在通常的情况下, 大家所使用的关于日志进行输出时的具体格式。把日志处理器的配置项进行修改, 让日志的输出目的地设置为具体的文件路径。# 输出到文件file_handler logging.FileHandler(../log/mylog.txt)# 设置日志处理器级别file_handler.setLevel(DEBUG)# 处理器按指定格式输出日志file_handler.setFormatter(fmt)在该项目下面新建一个文件夹, 这个文件夹的名字叫做log, 接着在这个新建好的文件夹下面再新建一个文件, 文件的名称是mylog.txt, 这个文件是用来存放日志数据的。你需要去做的事情, 就是把日志处理器进行设置, 这样它就会把结果输出到控制台上面去。# 输出到控制台ch logging.StreamHandler()# 设置日志处理器级别ch.setLevel(DEBUG)# 处理器按指定格式输出日志ch.setFormatter(fmt)收集器和处理器进行对接, 并且指定具体的输出渠道。# 日志输出到文件logger.addHandler(file_handler)# 日志输出到控制台logger.addHandler(ch)关于这个大致流程图的说明, 具体情况如下。我们会把上面那些各自独立的内容给揉合到一起, 然后去测试一下功能是否属于正常的状况。接着呢, 会在指定的那个目录下面, 创建一个新的名为.py的文件出来。import logging# 定义一个日志收集器logger logging.getLogger(ITester)# 设置收集器的级别不设定的话默认收集warning及以上级别的日志logger.setLevel(DEBUG)# 设置日志格式fmt logging.Formatter(%(filename)s-%(lineno)d-%(asctime)s-%(levelname)s-%(message)s)# 设置日志处理器-输出到文件file_handler logging.FileHandler(../log/mylog.txt)# 设置日志处理器级别file_handler.setLevel(DEBUG)# 处理器按指定格式输出日志file_handler.setFormatter(fmt)# 输出到控制台ch logging.StreamHandler()# 设置日志处理器级别ch.setLevel(DEBUG)# 处理器按指定格式输出日志ch.setFormatter(fmt)# 收集器和处理器对接指定输出渠道# 日志输出到文件logger.addHandler(file_handler)# 日志输出到控制台logger.addHandler(ch)if __name__ __main__:logger.debug(自定义的debug日志)logger.info(自定义的info日志)logger.warning(自定义的warning日志)logger.error(自定义的error日志)logger.critical(自定义的critical日志)控制台输出效果文件输出效果以上就是关于接口自动化浅析日志原理以及模块操作流程的那些详细内容, 假如你想去关注更多关于接口自动化日志方面的资料的话, 那就请你去关注脚本之家其它的那些相关文章
延伸阅读

更多相关文章

2026/9/28 4:52:18

十几套数据工具怎么收敛:从“点状采购”到平台化的减法复盘

十几套数据工具怎么收敛:从“点状采购”到平台化的减法复盘 标签:#数据治理 #数据平台 #数据管理 #平台选型 #踩坑复盘 摘要: 调研显示,组织平均部署十余个数据管理方案,技术栈碎片化已成为治理推不动的高发原因&…

2026/9/28 4:52:18

告别模板丑站:望城经开区建设开发公司门户网站设计规范全解析

告别模板丑站:望城经开区建设开发公司门户网站设计规范全解析 还在用那种五年前的免费模板?页面加载慢得像蜗牛,配色红绿撞车,手机端文字挤成一团。这种网站不仅让访问者秒退,更让搜索引擎蜘蛛绕道走。很多负责望城经开区建设开发公司门户网站的运营和开…

2026/9/28 4:52:18

佛山网站建设在哪找靠谱服务商?3个实战案例教你避开坑

佛山网站建设在哪找靠谱服务商?3个实战案例教你避开坑 想做个网站,却连代码都看不懂?别慌。在佛山做了十年建站,我见过太多老板被“免费建站”骗了定金,或者被“技术大牛”忽悠买贵了服务器。今天不讲虚的,直接上干货。 如果你正在纠结…

2026/9/28 5:47:20

Rust+Slint 跨平台 GUI 入门:用 TaoToken 统一 Key 打通 AI 辅助配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 5:47:20

minisip-0.7.0源码实战:SIP协议解析与C++编译排错

简介:minisip-0.7.0.tar.gz 是一份基于 C 实现的开源 SIP 用户代理完整源码,面向 VoIP 开发者、网络协议学习者及需要二次开发 SIP 客户端的技术人员。资源紧密围绕 SIP 协议的核心机制,涵盖注册、呼叫、会话管理、摘要认证与 TLS 加密等关键…

2026/9/28 5:47:20

基于OpenCV与YOLO的车辆多维特征识别系统实战

简介:Python结合OpenCV和YOLOv的车辆多维特征识别系统,提供完整源代码与预训练权重,面向智能交通、安防监控等领域开发者。系统可识别车色、车品牌、车标及车型,通过OpenCV预处理图像、YOLOv模型完成目标检测与特征提取&#xff0…

2026/9/28 5:47:20

Linux性能监控利器nmon:从实时监控到故障定位实战指南

1. 项目概述与工具定位1.1 为什么还需要一款"老牌"监控工具做过Linux运维的朋友应该都有这种感觉:系统监控工具多得眼花缭乱,从系统自带的top、vmstat、iostat,到后来崛起的PrometheusGrafana组合,再到各种Agent采集方案…

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/27 0:00:45

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:45

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/28 0:02:03

广州外贸网站建设推广:从零搭建全流程拆解与真实报价避坑

广州外贸网站建设推广:从零搭建全流程拆解与真实报价避坑 改个需求建站公司拖一周,后台改个文案还得再交一笔“技术维护费”。这种憋屈事儿,做外贸的朋友太熟悉了。很多老板在找广州外贸网站建设推广服务商时,光盯着首页好不好看,却忽略了从零搭建一个能…

2026/9/28 0:02:04

搞懂百度竞价推广价格,网站性能优化别掉链子

搞懂百度竞价推广价格,网站性能优化别掉链子 网站突然打不开,浏览器弹出红色警告“此网站存在安全风险”,后台一看全是乱码代码和奇怪的跳转链接。这种网站被黑挂马的绝望感,很多刚转行做网站的朋友都经历过,尤其是那些为了省几百块钱服务器费用的新手。…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/28 1:59:25

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑