zoukankan      html  css  js  c++  java
  • 【14】Appium进阶篇-日志模块

    一、日志收集概述

      日志级别:

    级别

    何时使用

    DEBUG

    调试信息,也是最详细的日志信息。

    INFO

    证明事情按预期工作。

    WARNING

    表明发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。

    ERROR

    由于更严重的问题,软件已不能执行一些功能了。

    CRITICAL

    严重错误,表明软件已不能继续运行了。

      日志格式:日志一般采用 时间+模块+行数+日志具体信息 的内容格式

    二、Logging模块简介与应用

      logging的构成:logging模块包括logger,Handler,Filter,Formatter四个部分。          

              Logger 记录器,用于设置日志采集。
              Handler 处理器,将日志记录发送至合适的路径。
              Filter 过滤器,提供了更好的粒度控制,它可以决定输出哪些日志记录。
              Formatter 格式化器,指明了最终输出中日志的格式

      logger记录器:basicConfig(**kwargs) 为日志记录系统做基本配置

             部分参数简介
                  filename 指定日志文件名称
                  filemode 指定打开文件的模式,如果指定了filename(如果文件模式未指定,则默认为'a)
                      Tips:文件读写模式
                          w 以写方式打开,
                          W 文件若存在,首先要清空,然后(重新)创建
                          a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
                          r+ 以读写模式打开
                          w+ 以读写模式打开 (参见 w )
                          a+ 以读写模式打开 (参见 a )
                  format 为处理程序使用指定的格式字符串。
                  datefmt 使用指定的日期/时间格式。样式如果指定了格式字符串,则使用它来指定 格式字符串的类型.
                  level 将根记录器级别设置为指定级别。
                  Handler 处理器:Handler 处理器,将日志记录发送至合适的路径,Handler处理器类型有很多种,比较常用的有三个:
                      1.StreamHandler:将日志记录输出发送到诸如sys.stdout,sys.stderr或任何类似文件流的对象。上面例子就是输出到控制台
                      2.FileHandler:将日志记录输出发送到磁盘文件。 它继承了StreamHandler的输出功能。logging.basicConfig(filename='runlog.log',level=logging.DEBUG)

                      3.NullHandler:不做任何格式化或输出。 它本质上是一个开发人员使用的“无操作”处理程序。
                  Filter 过滤器  Handlers和Loggers可以使用Filters来完成比级别更复杂的过滤。
                  Formatter使用Formatter对象设置日志信息最后的规则、结构和内容,默认的时间格式为%Y-%m-%d %H:%M:%S。

    格式

    描述

    %(levelno)s

    打印日志级别的数值

    %(levelname)s

    打印日志级别名称

    %(pathname)s

    打印当前执行程序的路径

    %(filename)s

    打印当前执行程序名称

    %(funcName)s

    打印日志的当前函数

    %(lineno)d

    打印日志的当前行号

    %(asctime)s

    打印日志的时间

    %(thread)d

    打印线程id

    %(threadName)s

    打印线程名称

    %(process)d

    打印进程ID

    %(message)s

    打印日志信息

    # coding:utf-8
    import logging
    
    #设置日志格式,名称
    logging.basicConfig(level=logging.INFO,filename='infolog.log',
                        format='%(asctime)s %(filename)s[line:%(lineno)d]%(levelname)s%(message)s')
    
    
    logging.debug('debug-info')
    logging.info('INFO')
    logging.warning("warning_info")
    logging.error("error_info")
    logging.critical("critical_info")

    三、Logging配置文件管理

      多模块日志配置格式

    [loggers]
    keys=root,infoLogger
    
    [logger_root]
    level=DEBUG     #日志等级
    handlers=consoleHandler,fileHandler     #控制台和文件都记录
    
    [logger_infoLogger]
    handlers=consoleHandler,fileHandler
    qualname=infoLogger
    propagate=0
    
    [handlers]
    keys=consoleHandler,fileHandler
    
    [handler_consoleHandler]
    class=StreamHandler
    level=INFO
    formatter=form02
    args=(sys.stdout,)
    
    [handler_fileHandler]
    class=FileHandler
    level=INFO
    formatter=form01
    args=('runlog.log', 'a')        #日志输出文件路径
    
    [formatters]
    keys=form01,form02
    
    [formatter_form01]
    format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
    
    [formatter_form02]
    format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
    import logging
    import logging.config
    
    #调用方法如下
    CON_LOG='log.conf'    #配置日志文件的名称
    logging.config.fileConfig(CON_LOG)
    logging=logging.getLogger()
  • 相关阅读:
    纯CSS气泡对话框
    使用JAVASCRIPT实现的 单行文字 逐个文字变色,可以循环控制
    数字转换成中文汉字
    jquery如何在对表格添加删除后再对其前面加上顺序的序列号
    情路
    【缅怀妈妈系列诗歌】之二十四:一份永不忘却的思念
    我等你,千年之后
    赢道在手,前程无忧
    为你感动
    你为什么对我如此冷漠
  • 原文地址:https://www.cnblogs.com/qingbaobei7370/p/12420705.html
Copyright © 2011-2022 走看看