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 日志模块详解
前言 我们知道查看日志是开发人员日常获取信息.排查异常.发现问题的最好途径,日志记录中通常会标记有异常产生的原因.发生时间.具体错误行数等信息,这极大的节省了我们的排查时间,无形中提高了编码效率.所以 ...
随机推荐
- 021.Python的内置函数
内置函数 1 abs 绝对值函数 res = abs(-9.9867) print(res) 执行 [root@node10 python]# python3 test.py 9.9867 2 rou ...
- 自己封装的mysql应用类示例
from pymysql import *class my_mysql_mud(object): def __init__(self,host,port,db,user,passwd,charset= ...
- 3*060-A 日志记录
电路检修遇到的问题: 今天在检修一块3060-A电路板时 发现 3.3V烫 但是3.3V路上的电容并没有短路 于是拆单片机 拆RS232EN 拆 FM24V 最后发现 原来是 1117 ...
- 【大咖直播】Elastic 可观测性实战工作坊
Elastic 的可观测性解决方案是基于 Elastic Stack 的一站式解决方案.该解决方案具有完备的日志.指标.APM 和可用性采集能力,可以在大规模和云原生的环境下完成基于服务质量目标的管理 ...
- 启动kafaka失败了,提示zk保存kafka的ids已经在使用。
FATAL [Kafka Server 1], Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.Ka ...
- .NET Core中插件式开发实现
前言: 之前在文章- AppDomain实现[插件式]开发 中介绍了在 .NET Framework 中,通过AppDomain实现动态加载和卸载程序集的效果. 但是.NET Core 仅支持单个默认 ...
- p4 学习笔记
新版的p4编译器编译p4-14 p4c test.p4 -o meter --std p4-14 #p4-14和p4-16存在较大差异,参考p4代码时需注意 p4语言特性 无符号数bit类型的操作:此 ...
- .Net Core gRPC 实战(二)
概述 gRPC 客户端必须使用与服务相同的连接级别安全性. 如调用服务时通道和服务的连接级别安全性不一致,gRPC 客户端就会抛出错误. gRPC 配置使用HTTP gRPC 客户端传输层安全性 ( ...
- 在Go语言项目中使用Zap日志库
在Go语言项目中使用Zap日志库 本文先介绍了Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档. 在Go语言项 ...
- Go基础结构与类型05---程序运算
package main import ( "fmt" "math" ) func main() { /*加减乘除,求余*/ fmt.Println(" ...