• logging获取日志


    获取日志并保存有两种写法,分别如下

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2019-07-03 16:36
    # @File : logging_test.py
    '''
    logging获取日志
    longging模块包括logger,Handler,Filter,Formatter
    logger:记录器,用于设置日志采集
    Handler:处理器,将日志发送到合适的路径
    Filter:过滤器,提供了更好的粒度控制,他可以决定输出那些日志记录
    Formatter:格式化器,指明了最重输出中的日志的格式
    
    basicConfig(**kwargs)为日志记录系统做基本配置
    '''
    import logging
    # logging.basicConfig(level=logging.DEBUG)
    logging.basicConfig(level=logging.INFO,filename='runlog.log',
                        format='%(asctime)s %(filename)s[line:%(lineno)s %(levelname)s %(message)s]')
    #filename可以设置生成的日志保存路径,不存在的会新创建
    #format指明输出格式
    
    logging.debug('debug info')
    logging.info('hello world')
    logging.warning('waining info')
    logging.error('error info')
    logging.critical('critical')

    另一种需要先写一个.conf文件用于存放日志格式等

    log.conf
    [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_conf.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
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2019-07-03 11:05
    # @Author : zhouyang
    # @File : capability_yaml.py
    '''
    从desired_caps.yaml文件中获取capability数据,登录考研帮app,把日志保存在文件中
    '''
    from appium import webdriver
    import yaml
    import logging
    import logging.config
    from selenium.common.exceptions import NoSuchElementException
    
    file=open('../yaml/desired_caps.yaml','r')
    data=yaml.load(file)
    
    CON_LOG='log.conf'
    logging.config.fileConfig(CON_LOG)
    logging=logging.getLogger()
    
    desired_caps={}
    desired_caps['platformName']=data['platformName']
    desired_caps['platformVerion']=data['platformVersion']
    desired_caps['deviceName']=data['deviceName']
    desired_caps['app']=data['app']
    desired_caps['noReset']=data['noReset']
    desired_caps['appPackage']=data['appPackage']
    desired_caps['appActivity']=data['appActivity']
    
    logging.info('start info...')
    
    driver=webdriver.Remote('http://'+str(data['ip'])+':'+str(data['port'])+'/wd/hub',desired_caps)
    
    def check_cancelBtn():
        logging.info('start check cancelBtn')
        try:
            cancelBtn = driver.find_element_by_id('android:id/button2')
        except NoSuchElementException:
            logging.info('no cancelBtn')
        else:
            cancelBtn.click()
    
    def check_skipBtn():
        logging.info('start check skipBtn')
        try:
            skipBtn = driver.find_element_by_id('com.tal.kaoyan:id/tv_skip')
        except NoSuchElementException:
            logging.info('no skipBtn')
        else:
            skipBtn.click()
    
    check_cancelBtn()
    check_skipBtn()
  • 相关阅读:
    leetcode-----5. 最长回文子串
    leetcode-----4. 寻找两个正序数组的中位数
    leetcode-----3. 无重复字符的最长子串
    leetcode-----2. 两数相加
    leetcode-----1. 两数之和
    leetcode-----第 26 场双周赛
    leetcode-----104. 二叉树的最大深度
    leetcode-----103. 二叉树的锯齿形层次遍历
    leetcode-----102. 二叉树的层序遍历
    数据管理必看!Kendo UI for jQuery过滤器的全球化
  • 原文地址:https://www.cnblogs.com/xiuxiu123456/p/11150404.html
Copyright © 2020-2023  润新知