0


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

一、概念

1.1.概念

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

1.2.作用

  1. 1).调试程序
  2. 2).了解系统程序运行的情况,是否正常
  3. 3).系统程序运行故障分析与问题定位
  4. 4).用来做用户行为分析和数据统计

1.3.级别

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

  1. 3).说明:
  2. 3.1).上面列表中的日志级别是从上往下依次升高的,即:DEBUG<INFO<WARNING<ERROR<CRITICAL
  3. 3.2).当为程序指定一个日志级别后,程序会记录所有日志级别大于或等于指定日志级别的日志信息,而不是仅仅记录指定级别的日志信息
  4. 3.3).一般建议只使用DEBUGINFOWARNINGERROR这四个级别

二、基本使用

1.1.概念

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

1.2.用法

  1. # 导包
  2. import logging
  3. # 设置日志级别
  4. logging.basicConfig(level=logging.DEBUG)
  5. # 调用指定级别,输入日志信息
  6. logging.debug("this is a debug...")
  7. logging.info("this is a info...")
  8. logging.warning("this is a warning...")
  9. logging.error("this is a error...")
  10. logging.critical("this is a critical.")

1.3.设置日志级别

  1. 1).默认的日志的格式为:日志级别:Logger名称:日志内容
  2. 2).自定义日志格式:
  3. 2.1).format常用

  1. 2.2).代码
  1. # 导包
  2. import logging
  3. # 设置日志级别
  4. # logging.basicConfig(level=logging.DEBUG)
  5. # 设置修改默认的输出日志格式
  6. fm = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s"
  7. # 设置日志保存到指定的参数
  8. logging.basicConfig(level=logging.DEBUG,format=fm,filename='./log/test.log')
  9. # 调用指定级别,输入日志信息
  10. logging.debug("this is a debug...")
  11. logging.info("this is a info...")
  12. logging.warning("this is a warning...")
  13. logging.error("this is a error...")
  14. logging.critical("this is a critical.")

三、高阶使用

1.1.logging日志模块四大组件

1.2.组件之间的关系

  1. 1).日志器(logger)需要通过处理器(handler)将日志信息输出到目标位置,如:文件、Sys.stdout、网络等
  2. 2).不同的处理器(handler)可以将日志输出到不同的位置
  3. 3).日志器(logger)可以设置多个处理器(handler)将同一条日志记录输出到不同的位置
  4. 4).每个处理器(handler)都可以设置自己的格式器(fommatter)实现同一条日志以不同的格式输出到不同的地方。

1.3.Logger类

  1. 1).作用:向程序暴露记录日志的方法
  2. 2).创建Logger对象
  3. 2.1).logger = logging.getLogger()
  4. 2.2).logger = logging.getLogger("myLogger")
  5. 2.3).logging.getLogger(方法有一个可选参数name,该参数表示将要返回的日志器的名称标识,如果不提供该参数,则返回root日志器对象。若以相同的name参数值多次调用getLogger(方法,将会返回指向同一个logger对象的引用。
  6. 3).常用方法

1.4.Handler类

  1. 1).Handler对象的作用是将消息分发到handler指定的位置,比如:控制台、文件、网络、邮件等。Logger对象可以通过addHandler()方法为自已添加多个handler对象
  2. 2).如何创建Handler对象:在程序中不应该直接实例化和使用Handler实例,因为Handler是一个基类,它只定义了Handler应该有的接口。应该使用Handler实现类来创建对象,logging中内置的常用的Handler包括

  1. 3).常用的方法:

1.5.Formatter类

  1. 1).Formatter对象用于配置日志信息的格式
  2. 2).如何创建Formatter对象

1.6代码

  1. # 导包 --> 不建议使用import logging
  2. import logging.handlers
  3. # 导包时 导入 import logging.handlers 推荐: 原因 logging是包名,导入包名时,会自动执行包下面的__init__文件
  4. # handlers 为模块名称
  5. # 获取Logger
  6. # logger = logging.getLogger()
  7. # 添加名称
  8. logger = logging.getLogger("admin")
  9. # 设置级别
  10. logger.setLevel(logging.DEBUG)
  11. # 获取控制台 处理器
  12. sh = logging.StreamHandler()
  13. # 添加到文件 根据时间切割
  14. th = logging.handlers.TimedRotatingFileHandler(filename='logtime.log',
  15. when="M",
  16. interval=1,
  17. backupCount=3)
  18. # 设置处理 级别扩展 设置未error级别,只有error级别写入
  19. th.setLevel(logging.ERROR)
  20. # 添加格式器
  21. fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s"
  22. fm = logging.formatter = logging.Formatter(fmt)
  23. # 将格式器添加到处理器中
  24. sh.setFormatter(fm)
  25. th.setFormatter(fm)
  26. # 将控制台处理器添加到logger
  27. logger.addHandler(sh)
  28. logger.addHandler(th)
  29. # 输入信息
  30. logger.info("info")
  31. logger.debug("debug")
  32. logger.warning("warning")
  33. logger.error("error")

四、今日学习思维导图


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

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

还没有评论