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

免责声明:文章转载自《logging获取日志》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于maven打包出现测试错误导致打包失败高并发的场景下,如何保证生产者投递到消息中间件的消息不丢失下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用C#写了个日志类

日志的作用我想不必我多说了,在做BS架构的程序的时候,我们通常会把日志写在数据库的某张表中,这样带来的好处是便于查询,使用SQL语句十分方便而灵活,但缺点也是显而易见的,那就是造成数据库负担过重,随着日志不断增加,表的尺寸也会变得越来越庞大,性能也会渐渐下降,所以我打算把日志保存到文本文件中去,纯文本文件的写入可是要比数据库快很多的。 然而目前已经存在的日...

Apache/Nginx/IIS 访问日志详解

Apache日志详解 1.Apache日志文件名称及所在路径 日志文件一般都是保存在在apache/logs目录下,实际情况可以根据Apache的配置文件去查找日志文件所在的路径。 例如phpstudy(windows)在 :phpstudy/Extensions/apache/logs; wdcp(linux)在 :www/wdlinux/apache/...

ironic 注入秘钥失败 & 169.254.169.254

grep authorized_keys cloud-init*log 正常请况下 grep authorized_keys cloud-init*log [root@sysu--2 log]# grep centos cloud-init*log 2019-10-22 02:14:17,322 -__init__.py[INFO]: User cen...

自定义sshd服务

1、安装rsyslog服务和sshd服务并启动 2、配置日志文件    vim /etc/rsyslog.conf        在里面添加一行 local*.    /var/log/sshd.log 3、编辑sshd的主配置文件    vim /etc/ssh/sshd_config     添加一行syslogFacility local0  (这里...

Linux 6种日志查看方法,不会看日志会被鄙视的

摘自:https://www.cnblogs.com/chengxy-nds/p/12261892.html 作为一名后端程序员,和Linux打交道的地方很多,不会看Linux日志,非常容易受到来自同事和面试官的嘲讽,所以掌握一种或者几种查看日志的方法非常重要。 Linux查看日志的命令有多种: tail、cat、tac、head、echo等,本文只介绍...

DG archive gap

什么是archive gap Archive Gap就是standby端日志应用的过程中丢失的一段范围的redo.典型的发生在standby端不能接收primary的redo信息或者接收后不能应用这些redo. 一旦出现GAP,则standby端的Log Apply Services将会暂停,直到Gap解决后恢复正常。 产生Archive Gap的可能原因...