2012-07-15 38 views
0

我正試圖從簡單的打印切換到正確的日誌記錄。記錄器級別未設置

我想使用兩個不同的記錄器,第一個在屏幕上顯示信息,另一個在文件中顯示信息。

我的問題是,即使我將我的處理程序級別設置爲DEBUG,消息只顯示警告。

這裏是我的代碼示例:

def setup_logger(self): 

    """ 

    Configures our logger to save error messages 

    """ 

    # create logger for 'facemovie' 

    self.my_logger = logging.getLogger('FileLog') 

    # create file handler which logs even debug messages 

    fh = logging.FileHandler('log/fm.log') 

    fh.setLevel(logging.DEBUG) 

    # create console handler with a higher log level 

    self.console_logger = logging.getLogger('ConsoleLog') 

    ch = logging.StreamHandler() 

    ch.setLevel(logging.DEBUG) 



    # create formatter and add it to the handlers 

    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 

    fh.setFormatter(formatter) 

    #ch.setFormatter(formatter) 



    ##Start logging in file 

    self.my_logger.info("######") 



    # add the handlers to the logger 

    self.my_logger.addHandler(fh) 

    self.console_logger.addHandler(ch) 



    # DEBUG 

    self.console_logger.info("MFCKR") 

    self.console_logger.debug("MFCKR") 

    self.console_logger.warning("MFCKR") 

    self.console_logger.error("MFCKR") 

    self.console_logger.critical("MFCKR") 

    self.my_logger.info("MFCKR") 

    self.my_logger.debug("MFCKR") 

    self.my_logger.warning("MFCKR") 

    self.my_logger.error("MFCKR") 

    self.my_logger.critical("MFCKR") 

和輸出:

[[email protected]:~/Documents/FaceMovie]$ python Facemoviefier.py -i data/inputs/samples -o data/ 
Selected profile is : frontal_face 
MFCKR 
MFCKR 
MFCKR 
Starting Application ! 
Output #0, avi, to 'data/output.avi': 
    Stream #0.0: Video: mpeg4, yuv420p, 652x498, q=2-31, 20780 kb/s, 90k tbn, 5 tbc 
FaceMovie exited successfully! 
[[email protected]:~/Documents/FaceMovie]$ cat log/fm.log 
2012-07-15 22:23:24,303 - FileLog - WARNING - MFCKR 
2012-07-15 22:23:24,303 - FileLog - ERROR - MFCKR 
2012-07-15 22:23:24,303 - FileLog - CRITICAL - MFCKR 

我紅的doc和搜索網絡上類似的錯誤,但找不到任何。

關於記錄器不顯示DEBUG和INFO的原因,你有什麼想法嗎?

Thx!

回答

2

Just found the answer here

不知道爲什麼我之前沒找到它。

即使處理程序也一樣,必須設置整個記錄器級別。 我沒有設置記錄器的級別,我猜在這種情況下,默認值是Warning。

問題解決!

+1

通常的方法是設置記錄器級別,並且只在需要時設置處理器級別。記錄器級別控制應用程序中事件的生成,而處理程序級別則充當特定受衆(如開發人員,最終用戶)的過濾器。 – 2012-07-15 20:46:07

+0

我一定錯過了閱讀doc:s。另一個問題讓我明白這一點。順便說一句,我真的很高興(甚至接近稱讚),你花時間評論:)。謝謝! – jlengrand 2012-07-15 20:51:32

相關問題