1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Python】规范脚本Log输出 将log输出到控制台同时写入文件中

【Python】规范脚本Log输出 将log输出到控制台同时写入文件中

时间:2022-12-27 19:18:48

相关推荐

【Python】规范脚本Log输出 将log输出到控制台同时写入文件中

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

文章目录

前言一、logging模块的引入二、logging模块的使用1.引入库2.创建一个logger对象3.将日志写入文件4.将日志输出到控制台5.定义handler的输出格式,简而言之就是输出的日志格式6.将输出到文件的logger和输出到控制台的logger添加到handler里面7.最后设置需要打印的log级别和打印的log内容 总结

前言

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

实际上,很多同学都是使用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 logginglogger = 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文件中。本文仅用于记录本人在实际编写脚本中的过程,如有侵权联系删除。如有什么地方有错误,欢迎不吝赐教。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。