2012-01-26 428 views
2

在Python 2.7中,我試圖登錄到控制檯而不是打印。試圖獲取日誌到控制檯

我打電話寫這個方法,並在開始時調用。

def set_up_logging(): 
    log = logging.getLogger() 
    ch = logging.StreamHandler() 
    ch.setLevel(logging.INFO) 
    log.addHandler(ch); 

在subsquent方法我做的:

... 
logging.info(">>do_nightlies()"); 

,它不工作。

任何想法讚賞?

謝謝。

回答

3

記錄器和處理程序都有一個最低級別。您設置處理程序的日誌級別,但不設置日誌記錄程序的日誌級別。由於記錄器的級別默認爲logging.WARNING,因此info()調用不會傳遞給處理程序。

您可以通過記錄器的級別設置爲logging.INFO以及::

def set_up_logging(): 
    log = logging.getLogger() 
    log.setLevel(logging.INFO) 
    ch = logging.StreamHandler() 
    ch.setLevel(logging.INFO) 
    log.addHandler(ch) 
+0

+1修復它,你其實並不需要在這兩個記錄器*和*處理程序中設置的水平(在大多數例)。只需將它們設置在記錄器上,並且僅在需要時纔將其設置在處理程序上(記錄器的級別首先被檢查,處理程序的級別僅在後面 - 這樣您可以通過將級別應用於記錄器來節省不必要的工作)。處理程序上的設置級別完全有效,但不太常用。 –

相關問題