@classmethod中的Python 3.5 logger.info

时间:2016-12-25 03:58:39

标签: python logging

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。日志配置设置稳定,在其他类中工作。

1 个答案:

答案 0 :(得分:0)

我发现此处显示的代码没有问题。我怀疑当您将cls.logger.info替换为cls.logger.error时,您会看到日志记录输出。这意味着日志系统的配置出现问题。这也是这里没有显示的部分,所以我不知道出了什么问题。

在任何情况下,您都必须确保日志记录系统配置为在记录器实例实例化之前显示级别INFO。 您的记录器在解析代码时会被实例化,可能是在某些其他代码导入此模块时。 这反过来意味着您必须在导入此模块之前配置日志记录系统。