2016-12-25 61 views
0

新的Python,以前從未用戶@classmethod。 問題 - 由於某種原因logger方法沒有在shutdown_webdriver函數中執行。的Python 3.5 logger.info在@classmethod

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") 

所以我只看到打印('這裏')消息在我的控制檯輸出。

P.S.日誌配置設置和穩定,在其他類中工作。

+0

你檢查過,如果'記錄器'是無或沒有? –

+0

不是無。記錄器正在工作100%。一些概率與結構也許.. 目前只是在'@'實例logger'再次classmethod'to使其工作 – user1935987

回答

0

我看到這裏顯示的代碼沒有問題。我懷疑在用cls.logger.error替換cls.logger.info時會看到日誌輸出。這意味着日誌記錄系統的配置出了問題。這也是這裏沒有顯示的部分,所以我不能說出什麼問題。

在你必須確保日誌記錄系統配置的記錄器實例的實例化之前顯示INFO級別的任何情況。 您的記錄器在代碼被解析時得到實例化,可能在其他代碼導入此模塊時。 這意味着您必須在導入此模塊之前配置日誌記錄系統。

+0

一樣的,我沒有看到這個問題:)但是日誌配置得當,測試。只有這個類的問題。 – user1935987

+0

你可以通過用'cls.logger.error'替換'cls.logger.info'來驗證這一點嗎? stdout上仍然沒有日誌消息?我敢肯定,會有... – roman

+0

你肯定嘗試使用.error/.info/.debug(在日誌設置'級別= DEBUG')。無論如何,我只看到這一類的概率...這麼客觀,我的「壞」修復對我來說是好的。 – user1935987