日志模块可以通过封装一个类,也可以通过配置文件取管理

新建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日志模块的管理(二)的更多相关文章

  1. python日志模块logging

    python日志模块logging   1. 基础用法 python提供了一个标准的日志接口,就是logging模块.日志级别有DEBUG.INFO.WARNING.ERROR.CRITICAL五种( ...

  2. Python 日志模块实例

    python 打印对象的所有属性值: def prn_obj(obj):     print '\n'.join(['%s:%s' % item for item in obj.__dict__.it ...

  3. python日志模块

    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系 统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4c ...

  4. Python::OS 模块 -- 进程管理

    os模块的简介参看 Python::OS 模块 -- 简介 os模块的文件相关操作参看 Python::OS 模块 -- 文件和目录操作 os模块的进程参数 Python::OS 模块 -- 进程参数 ...

  5. Python日志模块logging用法

    1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 ...

  6. python日志模块的使用

    学习一下python的日志模块logging,可以参考如下博客,写得很详细 https://www.cnblogs.com/yyds/p/6901864.html https://www.cnblog ...

  7. python日志模块logging学习

    介绍 Python本身带有logging模块,其默认支持直接输出到控制台(屏幕),或者通过配置输出到文件中.同时支持TCP.HTTP.GET/POST.SMTP.Socket等协议,将日志信息发送到网 ...

  8. python日志模块笔记

    前言 在应用中记录日志是程序开发的重要一环,也是调试的重要工具.但却很容易让人忽略.之前用flask写的一个服务就因为没有处理好日志的问题导致线上的错误难以察觉,修复错误的定位也很困难.最近恰好有时间 ...

  9. Python 日志模块详解

    前言 我们知道查看日志是开发人员日常获取信息.排查异常.发现问题的最好途径,日志记录中通常会标记有异常产生的原因.发生时间.具体错误行数等信息,这极大的节省了我们的排查时间,无形中提高了编码效率.所以 ...

随机推荐

  1. Linux_搭建NFS服务(基础)

    [RHEL8]-NFSserver :[Centos7]-NFSclient !!!测试环境我们首关闭防火墙和selinux(NFSserver和NFSclient都需要) [root@localho ...

  2. Ansible触发器-tag标签-忽略错误

    触发器 playbook handlers handler`用来执行某些条件下的任务,比如当配置文件发生变化的时候,通过notify触发handler去重启服务. 在saltstack中也有类似的触发 ...

  3. k8s滚动更新(8)

    一.k8s版本更新 滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 实践:部署 ...

  4. WPF中Grid容器中VerticalAlignment和HorizonAlignment和Margin的关系。

    在WPF中,经常使用Grid容器,来布局我们想要显示的对象. 这就不可避免的要和布局在其中的控件的VerticalAlignment特性,HorizonAlignment特性,以及Magin特性打交道 ...

  5. 直击Huawei Mate 40产线背后的华为云IoT智能制造

    摘要:数字孪生?在数字世界找到物理世界的设备! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之华为云IoT智能制造助力工厂数字化转型>,原文作者:启明. Part ...

  6. UnicodeDecodeError:'ascii' codec can't decode byte 0xe5 in position 89: ordinal not in range(128)

    环境python2,在出现该错误的python文件,增加: import sys reload(sys) sys.setdefaultencoding('utf8') 重新运行,不再报错

  7. NVIDIA安倍架构

    NVIDIA安倍架构 NVIDIA Ampere ArchitectureNVIDIA The Heart of the World's Highest-Performing, Elastic Dat ...

  8. GPU端到端目标检测YOLOV3全过程(上)

    GPU端到端目标检测YOLOV3全过程(上) Basic Parameters: Video: mp4, webM, avi Picture: jpg, png, gif, bmp Text: doc ...

  9. Python分析离散心率信号(上)

    Python分析离散心率信号(上) 一些理论和背景 心率包含许多有关信息.如果拥有心率传感器和一些数据,那么当然可以购买分析包或尝试一些可用的开源产品,但是并非所有产品都可以满足需求.也是这种情况.那 ...

  10. Imec推出高性能芯片的低成本冷却解决方案

    Imec推出高性能芯片的低成本冷却解决方案 Imec unveils low-cost cooling solution for high-performance chips 3D打印冷却器优于传统解 ...