QA|如何给我们的自动化测试代码增加日志记录?|Loguru
阅读原文时间:2023年09月05日阅读:1

这里我们用的是loguru,logging虽然是自带的,但确实使用起来比较繁琐,loguru在Logging基础上增加了很多个性化功能,使用起来也比较简单,所以就使用loguru

代码如下:

1 # cal_testlog.py
2
3 from loguru import logger
4 from config import BASE_DIR
5 import time
6
7 now_dt = time.strftime("%Y%m%d")
8 logpath = BASE_DIR + r'\log'
9 # logname = r'\\' + now_dt + r'.log'
10 cal_log = r'{}\\{}.log'.format(logpath,now_dt)
11 print(cal_log)
12 trace = logger.add(cal_log, rotation="5MB",encoding='utf-8',enqueue=True,retention="1 days")
13

说明:

上图中,我们使用 trace = logger.add(cal_log, rotation="5MB",encoding='utf-8',enqueue=True,retention="1 days") 来生成log,每5M分割一个,

  • enqueue (bool, optional) :要记录的消息在到达接收器之前是否应该首先通过多进程安全队列。当通过多个进程将日志记录到文件中时,这是非常有用的。这还具有使日志调用非阻塞的优点。
  • rotation:分隔日志文件,何时关闭当前日志文件并启动一个新文件的条件,;例如,“500 MB”、“0.5 GB”、“1 month 2 weeks”、“10h”、“monthly”、“18:00”、“sunday”、“monday at 18:00”、“06:15”
  • retention (str, int, datetime.timedelta or callable, optional) ,可配置旧日志的最长保留时间,例如,“1 week, 3 days”、“2 months”

将其他模块的测试内容写入log方法如下图:

注意:一定要记得导入trace

结果如下图:

关于loguru其他知识可参考这篇文章:

https://blog.csdn.net/software_test010/article/details/121150862