Python日志模块的管理(二)
日志模块可以通过封装一个类,也可以通过配置文件取管理
新建1个log.ini文件
[loggers]
keys=root [handlers]
keys=fileHandler,streamHandler [formatters]
keys=simpleFormatter [logger_root]
level=INFO
handlers=fileHandler,streamHandler [handler_fileHandler]
class=FileHandler
level=INFO
formatter=simpleFormatter
args=('mylog.log','a','utf-8') [handler_streamHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter [formatter_simpleFormatter]
format=%(asctime)s %(filename)s %(levelname)s %(funcName)s %(message)s
在程序中进行调用
'''
使用配置文件,进行设置日志
''' import logging.config
import time # 拿到配置文件
logging.config.fileConfig('../Data/log.ini')
# 拿到日志器
log =logging.getLogger() class BasePage:
# 想要把操作记录在日志文件中。调用日志中的级别
def __init__(self, driver):
log.info('初始化driver{}'.format(driver))
self.driver = driver def open(self, url):
log.info('正在访问网址{}'.format(url))
self.driver.get(url) def locator(self, name, value):
return self.driver.find_element(name, value) def on_input(self, name, value, txt):
try:
log.info('正在定位{}元素,元素值为{},输入的内容为{}'.format(name, value, txt))
self.locator(name, value).send_keys(txt)
except Exception as e:
log.error('输入内容失败%s' % e) def on_click(self, name, value):
try:
log.info('正在定位{}元素,元素值为{},进行点击'.format(name, value))
self.locator(name, value).click()
except Exception as e:
log.error('点击按钮失败%s' % e) def wait(self, t):
log.info('正在等待')
time.sleep(t) def close(self):
log.info('关闭浏览器')
self.driver.quit()
进行使用:
# from Study.Practices.practice5 import BasePage
from Study.Practices.BaseLog import BasePage
from selenium import webdriver driver=BasePage(webdriver.Chrome())
driver.open('http://www.baidu.com')
driver.on_input('id','kw','秋水')
driver.on_click('id','su')
driver.wait(3)
driver.on_click('xpath','//*[@id="1"]/h3/a/em')
driver.wait(3)
driver.close()
控制台产生日志
C:\Users\ceshi001\PycharmProjects\pythonstudy\venv\Scripts\python.exe C:/Users/ceshi001/PycharmProjects/pythonstudy/Study/Practices/practice2.py
2021-04-28 15:39:02,159 BaseLog.py INFO __init__ 初始化driver<selenium.webdriver.chrome.webdriver.WebDriver (session="520f01d9b7f6aca1b0d1d4f8ce54c39f")>
2021-04-28 15:39:02,159 BaseLog.py INFO open 正在访问网址http://www.baidu.com
2021-04-28 15:39:02,810 BaseLog.py INFO on_input 正在定位id元素,元素值为kw,输入的内容为秋水
2021-04-28 15:39:02,909 BaseLog.py INFO on_click 正在定位id元素,元素值为su,进行点击
2021-04-28 15:39:03,011 BaseLog.py INFO wait 正在等待
2021-04-28 15:39:06,012 BaseLog.py INFO on_click 正在定位xpath元素,元素值为//*[@id="1"]/h3/a/em,进行点击
2021-04-28 15:39:06,078 BaseLog.py INFO wait 正在等待
2021-04-28 15:39:09,080 BaseLog.py INFO close 关闭浏览器 Process finished with exit code 0
文件中产生日志:
2021-04-28 15:39:02,159 BaseLog.py INFO __init__ 初始化driver<selenium.webdriver.chrome.webdriver.WebDriver (session="520f01d9b7f6aca1b0d1d4f8ce54c39f")>
2021-04-28 15:39:02,159 BaseLog.py INFO open 正在访问网址http://www.baidu.com
2021-04-28 15:39:02,810 BaseLog.py INFO on_input 正在定位id元素,元素值为kw,输入的内容为秋水
2021-04-28 15:39:02,909 BaseLog.py INFO on_click 正在定位id元素,元素值为su,进行点击
2021-04-28 15:39:03,011 BaseLog.py INFO wait 正在等待
2021-04-28 15:39:06,012 BaseLog.py INFO on_click 正在定位xpath元素,元素值为//*[@id="1"]/h3/a/em,进行点击
2021-04-28 15:39:06,078 BaseLog.py INFO wait 正在等待
2021-04-28 15:39:09,080 BaseLog.py INFO close 关闭浏览器
Python日志模块的管理(二)的更多相关文章
- python日志模块logging
python日志模块logging 1. 基础用法 python提供了一个标准的日志接口,就是logging模块.日志级别有DEBUG.INFO.WARNING.ERROR.CRITICAL五种( ...
- Python 日志模块实例
python 打印对象的所有属性值: def prn_obj(obj): print '\n'.join(['%s:%s' % item for item in obj.__dict__.it ...
- python日志模块
许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系 统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4c ...
- Python::OS 模块 -- 进程管理
os模块的简介参看 Python::OS 模块 -- 简介 os模块的文件相关操作参看 Python::OS 模块 -- 文件和目录操作 os模块的进程参数 Python::OS 模块 -- 进程参数 ...
- Python日志模块logging用法
1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 ...
- python日志模块的使用
学习一下python的日志模块logging,可以参考如下博客,写得很详细 https://www.cnblogs.com/yyds/p/6901864.html https://www.cnblog ...
- python日志模块logging学习
介绍 Python本身带有logging模块,其默认支持直接输出到控制台(屏幕),或者通过配置输出到文件中.同时支持TCP.HTTP.GET/POST.SMTP.Socket等协议,将日志信息发送到网 ...
- python日志模块笔记
前言 在应用中记录日志是程序开发的重要一环,也是调试的重要工具.但却很容易让人忽略.之前用flask写的一个服务就因为没有处理好日志的问题导致线上的错误难以察觉,修复错误的定位也很困难.最近恰好有时间 ...
- Python 日志模块详解
前言 我们知道查看日志是开发人员日常获取信息.排查异常.发现问题的最好途径,日志记录中通常会标记有异常产生的原因.发生时间.具体错误行数等信息,这极大的节省了我们的排查时间,无形中提高了编码效率.所以 ...
随机推荐
- Linux_配置主DNS服务(基础)
[RHEL8]-DNSserver:[Centos7.4]-DNSclient !!!测试环境我们首关闭防火墙和selinux(DNSserver和DNSclient都需要) [root@localh ...
- linux进程间通信-(转自 临水)
一.进程间通信概述进程通信有如下一些目的:A.数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B.共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别 ...
- kylin的rowkey优化之调整rowkey顺序
在以hbase为存储的cuboid中,会有很多计算好的数据行,这每个行的key都是由维度值按顺序生成的rowkey 而这个顺序,在我们做cube设计的时候是可以调整的. 具体调整路径是:cube de ...
- 西门子S7系列以太网通讯处理器安装调式操作
北京华科远创科技有限研发的远创智控ETH-YC模块,PLC转以太网型号有MPI-ETH-YC01和MPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART S7-20 ...
- 【补档_STM32单片机】脉搏波采集显示硬件设计
一.脉搏波简介 脉搏一般情况下指的都是动脉脉搏.每分钟的脉搏次数称为脉率,正常情况下与心率是一致的.心脏的一次收缩和舒张成为一个心动周期.在每个心动周期内,心室的收缩和舒张会引起脉内压力的周期性波 ...
- MySQL中InnoDB存储引擎的实现和运行原理
InnoDB 存储引擎作为我们最常用到的存储引擎之一,充分熟悉它的的实现和运行原理,有助于我们更好地创建和维护数据库表. InnoDB 体系架构 InnoDB 主要包括了: 内存池.后台线程以及存储文 ...
- Elasticsearch常用DSL关键字
Elasticsearch常用DSL关键字 query: 用于包含查询使用到的语法 match_all: 最简单的查询,获取索引所有数据,类似搜索 *.如:"query":{&qu ...
- ALD技术,相机去噪,图像传感器
ALD技术,相机去噪,图像传感器 1. 作为镜片的防反射涂层技术被关注的ALD(atomic layer deposition)的引入趋势. (a)为什么需要一种新的防止反射的涂层技术? ALD被认为 ...
- Java基础知识之this关键字知识讲解
this关键字这里对java中this关键字的基础知识进行讲解,希望对热爱java的小伙伴有帮助!! /* this关键字代表了所属函数的调用者对象. this关键字的作用: 1. 如果存在同名成员变 ...
- VLAN与三层交换机
VLAN概述与优势 ①分割广播域 物理分割 逻辑分割 ②VLAN的优势 控制广播 增强网络安全性 简化网络管理 VLAN的范围 VlAN ID范围 范围 用途 0,4095 保留 仅限系统使用,用户 ...