python的新手,从来没有用过@classmethod。
问题 - 由于某种原因logger
方法未在shutdown_webdriver
函数中执行。
import time
import logging
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.proxy import Proxy
class WebBrowserSettings(object):
logger = logging.getLogger(__name__)
def __init__(self, proxy):
self.proxy = proxy
def setup_remote_chromedriver(self):
**irrelevant code**
return browser
@classmethod
def shutdown_webdriver(cls, browser):
print('here')
cls.logger.info("Shutting down 1")
for index in range(0, 20):
error_check = 0
try:
time.sleep(5)
browser.quit()
except Exception:
error_check = 1
if error_check == 0:
break
cls.logger.info("Browser is down")
所以我只在控制台输出中看到print('here')消息。
P.S。日志配置设置稳定,在其他类中工作。
答案 0 :(得分:0)
我发现此处显示的代码没有问题。我怀疑当您将cls.logger.info
替换为cls.logger.error
时,您会看到日志记录输出。这意味着日志系统的配置出现问题。这也是这里没有显示的部分,所以我不知道出了什么问题。
在任何情况下,您都必须确保日志记录系统配置为在记录器实例实例化之前显示级别INFO
。
您的记录器在解析代码时会被实例化,可能是在某些其他代码导入此模块时。
这反过来意味着您必须在导入此模块之前配置日志记录系统。