2016-07-09 28 views
1
fmtter = logging.Formatter('%(asctime)s,%(msecs)05.1f (%(funcName)s) %(message)s', '%H:%M:%S') 

rock_log = '%s/rock.log' % Build.path 
hdlr = logging.FileHandler(rock_log, mode='w') 
hdlr.setFormatter(fmtter) 
hdlr.setLevel(logging.DEBUG) 

rock_logger = logging.getLogger('rock') 
rock_logger.addHandler(hdlr) 

我上面記錄python日誌記錄:記錄器setLevel()沒有執行?

rock_logger.info("hi")犯規打印什麼的日誌,但
rock_logger.error("hi")可以打印到日誌

我認爲這事做的水平,但我專門將其設置爲logging.DEBUG

任何人都知道我在做什麼錯了?

回答

2

您的情況rock_logger是記錄器,hdlr是處理程序。當您嘗試記錄某些內容時,記錄器首先檢查它是否應該處理該消息(取決於它自己的日誌級別)。然後它將消息傳遞給處理程序。處理程序然後根據它自己的日誌級別檢查級別,並決定是否將它寫入文件。

您的rock_logger可能會將日誌記錄級別設置爲錯誤。因此,當您嘗試使用info()debug()時,不會將消息傳遞給處理程序。

rock_logger.setLevel(logging.DEBUG) 

這應該解決這個問題。

+0

是的,解決了這個問題!謝謝 – ealeon

+0

不知道處理程序級別不會覆蓋記錄器的 – ealeon