提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

实际上,很多同学都是使用python来做自动化测试,在很多情况下需要查看脚本运行的Log,根据Log来做问题分析。我们希望将脚本的log输出到控制台,同时也希望将脚本写入到文件中。下面简单介绍一下将log输出到控制台,并且将log写入到以当前时间命名的文件中。


提示:以下是本篇文章正文内容,下面案例可供参考

一、logging模块的引入

1、python有一个logging模块,我们可以使用它来规范log的输出。首先,需要下载logging模块,在命令行输入pip install logging进行安装:

pip install logging

二、logging模块的使用

1.引入库

代码如下(示例):

import logging

2.创建一个logger对象

创建一个logger对象,设置记录Log的等级。代码如下(示例):

logger = logging.getLogger()
logger.setLevel(logging.INFO) 

示例中设置记录的log等级为info,也可以修改为debug、warning、error、critical,根据自己的需求进行设置。

3.将日志写入文件

引入datetime,获取当前时间,用于对写入文件命名,并设置导出log文件的日志等级
代码如下(示例):

now = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
fileinfo = logging.FileHandler(f"AutoTest_log_{now}.log")
fileinfo.setLevel(logging.INFO) 

4.将日志输出到控制台

创建一个handler,来把记录的log输出到控制台。代码如下(示例):

controlshow = logging.StreamHandler()
controlshow.setLevel(logging.INFO)

5.定义handler的输出格式,简而言之就是输出的日志格式

这里设置的日志格式为时间+日志级别+日志信息。代码如下(示例):

formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s")
fileinfo.setFormatter(formatter)
controlshow.setFormatter(formatter)

6.将输出到文件的logger和输出到控制台的logger添加到handler里面

代码如下(示例):

logger.addHandler(fileinfo)
logger.addHandler(controlshow)

7.最后设置需要打印的log级别和打印的log内容

这里可以根据个人需要进行设置,例如:
logger.info(“这是第一条log”)
logger.warning(“这是第二条log”)
logger.error(“这是第三条log”)

完整代码如下:

import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO) 
#设置将日志输出到文件中,并且定义文件内容
now = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
fileinfo = logging.FileHandler(f"AutoTest_log_{now}.log")
fileinfo.setLevel(logging.INFO) 
#设置将日志输出到控制台
controlshow = logging.StreamHandler()
controlshow.setLevel(logging.INFO)
#设置日志的格式
formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s")
fileinfo.setFormatter(formatter)
controlshow.setFormatter(formatter)

logger.addHandler(fileinfo)
logger.addHandler(controlshow)
#例子
logger.info(“这是第一条log”)
logger.warning(“这是第二条log”)
logger.error(“这是第三条log”)

总结

本文介绍了python使用logging模块来规范脚本log的输出,实现将脚本log输出到控制台,并且将log写入以当前时间命名的log文件中。本文仅用于记录本人在实际编写脚本中的过程,如有侵权联系删除。如有什么地方有错误,欢迎不吝赐教。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐