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")

四、今日学习思维导图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

开测开测

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

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

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

打赏作者

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

抵扣说明:

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

余额充值