2011-05-21 99 views
0

我使用python模塊logging來生成日誌文件和控制檯打印。 我設置了我的腳本來記錄所有錯誤級別,沒有DEBUG文件。 但我設置處理控制檯打印的麻煩。在控制檯上,我想要顯示INFO以下的級別,而不是像setLevel這樣做。有沒有辦法用內聯的代碼做到這一點?Python - 日誌記錄和級別

+0

http://stackoverflow.com/questions/1383254/logging-streamhandler-標準流可能會幫助完整。 – 2011-05-21 08:05:23

回答

4

我不確定您的意思是「內聯代碼」,但您可以使用過濾器來實現此目的。

class InfoAndLower(logging.Filter): 
    def filter(self, record): 
     return record.levelno <= logging.INFO 

然後將過濾器實例附加到您的控制檯處理程序。

h = logging.StreamHandler(sys.stdout) 
h.addFilter(InfoAndLower()) 

在Python 3.2和更高版本,你不需要創建一個類 - 一個調用就可以了:

h.addFilter(lambda record: record.levelno <= logging.INFO)