0


day17-测试自动化之selenium的日志

一、概念

1.1.概念

            日志就是记录系统运行时的信息,对一个事件的记录;也称为Log。

1.2.作用

            1).调试程序

            2).了解系统程序运行的情况,是否正常

            3).系统程序运行故障分析与问题定位

            4).用来做用户行为分析和数据统计

1.3.级别

            1).日志级别:是指日志信息的优先级、重要性或者严重程度

            2).

            3).说明:

                    3.1).上面列表中的日志级别是从上往下依次升高的,即:DEBUG<INFO<WARNING<ERROR<CRITICAL

                    3.2).当为程序指定一个日志级别后,程序会记录所有日志级别大于或等于指定日志级别的日志信息,而不是仅仅记录指定级别的日志信息

                    3.3).一般建议只使用DEBUG、INFO、WARNING、ERROR这四个级别

二、基本使用

1.1.概念

            1).python中有一个标准库模块logging可以直接记录日志

1.2.用法

# 导包
import logging

# 设置日志级别
logging.basicConfig(level=logging.DEBUG)

# 调用指定级别,输入日志信息
logging.debug("this is a debug...")
logging.info("this is a info...")
logging.warning("this is a warning...")
logging.error("this is a error...")
logging.critical("this is a critical.")

1.3.设置日志级别

            1).默认的日志的格式为:日志级别:Logger名称:日志内容

            2).自定义日志格式:

                    2.1).format常用

                    2.2).代码
# 导包
import logging

# 设置日志级别
# logging.basicConfig(level=logging.DEBUG)

# 设置修改默认的输出日志格式
fm = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s"
# 设置日志保存到指定的参数
logging.basicConfig(level=logging.DEBUG,format=fm,filename='./log/test.log')

# 调用指定级别,输入日志信息
logging.debug("this is a debug...")
logging.info("this is a info...")
logging.warning("this is a warning...")
logging.error("this is a error...")
logging.critical("this is a critical.")

三、高阶使用

1.1.logging日志模块四大组件

1.2.组件之间的关系

            1).日志器(logger)需要通过处理器(handler)将日志信息输出到目标位置,如:文件、Sys.stdout、网络等

            2).不同的处理器(handler)可以将日志输出到不同的位置

            3).日志器(logger)可以设置多个处理器(handler)将同一条日志记录输出到不同的位置

            4).每个处理器(handler)都可以设置自己的格式器(fommatter)实现同一条日志以不同的格式输出到不同的地方。

1.3.Logger类

            1).作用:向程序暴露记录日志的方法

            2).创建Logger对象

                    2.1).logger = logging.getLogger()

                    2.2).logger = logging.getLogger("myLogger")

                    2.3).logging.getLogger(方法有一个可选参数name,该参数表示将要返回的日志器的名称标识,如果不提供该参数,则返回root日志器对象。若以相同的name参数值多次调用getLogger(方法,将会返回指向同一个logger对象的引用。

            3).常用方法

1.4.Handler类

            1).Handler对象的作用是将消息分发到handler指定的位置,比如:控制台、文件、网络、邮件等。Logger对象可以通过addHandler()方法为自已添加多个handler对象

            2).如何创建Handler对象:在程序中不应该直接实例化和使用Handler实例,因为Handler是一个基类,它只定义了Handler应该有的接口。应该使用Handler实现类来创建对象,logging中内置的常用的Handler包括

            3).常用的方法:

1.5.Formatter类

            1).Formatter对象用于配置日志信息的格式

            2).如何创建Formatter对象

1.6代码

# 导包 --> 不建议使用import logging
import logging.handlers
# 导包时 导入 import logging.handlers 推荐: 原因 logging是包名,导入包名时,会自动执行包下面的__init__文件
# handlers 为模块名称

# 获取Logger
# logger = logging.getLogger()
# 添加名称
logger = logging.getLogger("admin")

# 设置级别
logger.setLevel(logging.DEBUG)

# 获取控制台 处理器
sh = logging.StreamHandler()

# 添加到文件 根据时间切割
th = logging.handlers.TimedRotatingFileHandler(filename='logtime.log',
                                               when="M",
                                               interval=1,
                                               backupCount=3)

# 设置处理 级别扩展 设置未error级别,只有error级别写入
th.setLevel(logging.ERROR)

# 添加格式器
fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s"
fm = logging.formatter = logging.Formatter(fmt)

# 将格式器添加到处理器中
sh.setFormatter(fm)
th.setFormatter(fm)

# 将控制台处理器添加到logger
logger.addHandler(sh)
logger.addHandler(th)
# 输入信息
logger.info("info")
logger.debug("debug")
logger.warning("warning")
logger.error("error")

四、今日学习思维导图


本文转载自: https://blog.csdn.net/weixin_61319245/article/details/141094124
版权归原作者 开测开测 所有, 如有侵权,请联系我们删除。

“day17-测试自动化之selenium的日志”的评论:

还没有评论