当前位置:   article > 正文

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

python日志输出到文件

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


前言

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

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


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

一、logging模块的引入

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

pip install logging
  • 1

二、logging模块的使用

1.引入库

代码如下(示例):

import logging
  • 1

2.创建一个logger对象

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

logger = logging.getLogger()
logger.setLevel(logging.INFO) 
  • 1
  • 2

示例中设置记录的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) 
  • 1
  • 2
  • 3

4.将日志输出到控制台

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

controlshow = logging.StreamHandler()
controlshow.setLevel(logging.INFO)
  • 1
  • 2

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

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

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

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

代码如下(示例):

logger.addHandler(fileinfo)
logger.addHandler(controlshow)
  • 1
  • 2

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”)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

总结

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/512752
推荐阅读
相关标签
  

闽ICP备14008679号