pytest 日志模块的简单介绍

1.日志的作用

在程序中,日志主要的作用有:

  • 程序调试
  • 了解程序运行是否正常
  • 故障分析与问题定位
  • 用户行为分析

2.日志的等级

主要分为5种:

  • DEBUG:最详细的日志信息
  • info:仅次于DEBUG,通常是只记录关键节点信息、
  • WARNING:当某些不期望的事情发生时记录的信息,但是此时应用程序还是能正常运行
  • ERROR:由于一个严重的问题导致某些功能不能正常运行时记录的信息
  • CRITICAL:当发生严重错误,导致应用程序不能继续运行时记录的信息
    代码如下:
import logging

logging.basicConfig(level=logging.INFO)
logging.info("info")
logging.debug("debug")
logging.warning("warning")
logging.error("error")
logging.critical("critical")

导入logging模块,在该模块中设置了每个等级级别分数,critical是最高的,在上面代码中,若不设置level=logging.INFO,默认是WARNING,可用basicConfig设置级别。上面代码输出如下:

CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0

输出:
第一列是日志级别,第二列是执行的用户,第三列是打印的信息

INFO:root:info
WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical

3.logging模块的使用

logging模块使用有两种方式:

  1. 使用logging提供的模块级别的函数
  2. 使用Logging日志系统的四大组件

3.1 logging模块常用函数

在这里插入图片描述

3.2.logging模块的四大组件

  • loggers:提供应用程序代码直接使用的接口
  • handlers:用于将日志记录发送到指定的目的位置
  • filters:提供更细粒度的日志过滤功能,用于决定哪些日志将会被输出
  • formatters:用于控制日志信息的最终输出格式
Pytest中,可以使用`-r`选项来输出测试结果的详细信息,包括测试结果、测试耗时、测试文件名等。你可以将这些信息重定向到一个日志文件中,并使用`-s`选项在终端上输出运行日志。 如果你想控制日志文件的大小,可以考虑使用Python内置的`RotatingFileHandler`类,该类可以在日志文件达到指定大小时自动滚动日志,以避免日志文件过大。 以下是一个示例代码,可以在Pytest中使用`RotatingFileHandler`类来控制日志文件大小: ```python import logging import pytest from logging.handlers import RotatingFileHandler # 定义日志文件名和路径 log_file = "test.log" log_path = "./logs" # 创建RotatingFileHandler对象,设置日志文件大小为10MB,保留最近3个日志文件 handler = RotatingFileHandler(filename=log_file, mode='a', maxBytes=10*1024*1024, backupCount=3) # 设置日志级别为INFO handler.setLevel(logging.INFO) # 定义日志格式 formatter = logging.Formatter('[%(asctime)s] %(levelname)s: %(message)s') handler.setFormatter(formatter) # 添加handler到root logger中 logging.getLogger('').addHandler(handler) def test_example(): logging.info("Running test example...") # 测试代码 assert 1 == 1 if __name__ == "__main__": # 运行pytest,并将日志输出到控制台和日志文件中 pytest.main(["-s", "-rA", "--log-file={}/{}".format(log_path, log_file)]) ``` 在这个示例中,我们创建了一个`RotatingFileHandler`对象,并将其添加到root logger中。然后,我们定义了一个测试函数`test_example()`,在其中使用`logging`模块写入日志信息。最后,我们使用Pytest运行测试,并将日志输出到控制台和日志文件中。你可以在`RotatingFileHandler`构造函数中根据需要调整`maxBytes`和`backupCount`参数来控制日志文件大小和保留的日志文件数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远不要矫情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值