python自动化测试之日志输出


一、日志定义:用于跟踪运行软件所发生事件的方法,可以通过日志“查询信息”、“服务诊断”、“数据分析”

二、日志主要有如下5个等级:

第一级debug:调试信息

第二级info:描述重要事件

第三级warning:警告信息

第四级error:错误信息

第五级critical:危险信息

三、python是如何生成日志呢?python内置了logging模块,可以生成日志,设置日志等级,日志路径、日志文件滚动等,logging主要包括四大组件:

1、logger 日志器 提供了应用程序的接口

2、Handler 处理器 通过logger在不同位置输出日志

3、Formatter 格式器 决定日志以什么样式输出日志

4、Filter 过滤器 过滤哪些需要记录,哪些需要丢弃

 

示例:封装生成日志方法

import logging from logging.handlers import RotatingFileHandler import os class GetLog: def log(self): # 日志文件生成的目录:
        file_dir = os.getcwd() filename = (file_dir + "log.log") # 创建日志器
        logger = logging.getLogger() # 设置日志输出最低等级, 低于当前等级就会忽略
 logger.setLevel(logging.INFO)      # 判断处理器是否存在
        if not logger.handlers: # 创建处理器
            sh = logging.StreamHandler() # 生成日志文件
            # fh = logging.FileHandler(filename=filename, encoding="utf-8")
            # 设置滚动日志 1024*1024*3 最大3M 保留5个文件
            fh = RotatingFileHandler(filename, maxBytes=1024*1024, backupCount=5, encoding="utf-8") # 创建一个格式器
            formatter = logging.Formatter(fmt="%(asctime)s %(filename)s %(levelname)s %(message)s", datefmt="%Y/%m/%d/%X") # 设置文件日志级别, 等于或高于总开关的级别才能显示
 fh.setLevel(logging.INFO) # 设置屏幕日志级别
 sh.setLevel(logging.ERROR) # 格式和日志对象绑定在一起
 sh.setFormatter(formatter) fh.setFormatter(formatter) # 添加日志
 logger.addHandler(sh) logger.addHandler(fh) return logger if __name__ == '__main__': for i in range(10): GetLog().log().info("测试日志信息")

 

输出日志

def sum(a, b): try: total = a + b # 记录描述
        GetLog().log().info("正确计算输出{}+{}之和".format(a, b)) return total except Exception as e: GetLog().log().error("{}+{}之和计算错误{}".format(a, b, e)) if __name__ == '__main__': s1 = sum(2, "4") s2 = sum(1, 3) s3 = sum(2, 4)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM