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

 

posted @ 2019-07-08 12:17  不上进的小猫  阅读(720)  评论(0编辑  收藏  举报