问题
二次封装logging模块,设置级别为DEBUG,默认所有级别的日志都可以收集到;在发起ui自动化,打开浏览器输入网址,进行页面操作时,打印了大量的connectionpool、remote_connection的日志,包括发起请求,请求返回的内容等;这次的页面操作打印的日志被掩盖大量的日志,查看日志很难分辨出哪里出现了问题。
如:
[connectionpool.py:_make_request:433]-日志信息:http://127.0.0.1:57124 "POST
DEBUG-[remote_connection.py:_request:440]-日志信息:Finished Request
DEBUG-[connectionpool.py:_new_conn:226]-日志信息:Starting new HTTP connection (1): 127.0.0.1
解决方法
在日志模块,引入这个模块的logger,设置收集日志的级别,不收集debug的
LOGGER.setLevel(logging.WARNING)
如下,不想打印和记录remote_connection.py:_request的日志:
2022-08-04 13:51:07,788-DEBUG-[remote_connection.py:_request:440]-日志信息:Finished Request
在封装的log类中或使用log的文件头加,引入remote_connection import LOGGER,设置级别为WARNING级别
import logging
import re
import os
from logging.handlers import TimedRotatingFileHandler
from selenium.webdriver.remote.remote_connection import LOGGER
from requests.packages.urllib3.connectionpool import log as conplLogger
LOGGER.setLevel(logging.WARNING)
conplLogger.setLevel(logging.WARNING)
class LogPrint:
def __init__(self):
# my_logger,获取到getLogger().info(),获取到的filename正确,但通过封装后,filename则是当前logname
self.logger = logging.getLogger()
# 设置日志的收集级别, 必须要设置为DEBUG,默认收集warning级别以上的错误(不设置收集不到info error的日志)
self.logger.setLevel("DEBUG")
设置成功后,重新执行,打印日志正常
如果想要继续收集这个模块的日志,将封装的log模块,设置的级别去掉即可