logging获取日志

Posted xiuxiu123456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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获取日志的主要内容,如果未能解决你的问题,请参考以下文章

ASL:asl_search() 无法获取 asl_log() 写入的日志

SSH2项目在Tomcat下部署后怎么获取log4j生成的日志文件路径

maven中执行JUnit测试的时候,我使用log4j进行日志打印,怎样才能获取log4j打印的日志?

有啥方法可以监控 log4net 日志文件以获取应用程序洞察力

log4j 日志基础教程

测试开发CICD——Docker——docker logs —— 获取容器的日志