2015-06-06 45 views
0

此代碼中是否有任何內容可以解釋爲什麼我的信息消息不會進入日誌。正確格式化的警告和以上都將進入這兩個日誌文件。Python日誌記錄setLevel不記錄

初始化記錄:

logger = logging.getLogger() 
f = logging.Formatter('%(asctime)s\n%(levelname)s: %(funcName)s %(message)s') 
out = logging.handlers.RotatingFileHandler(filename=self.f_stdout, maxBytes=1048576, backupCount=99) 
err = logging.handlers.RotatingFileHandler(filename=self.f_stderr, maxBytes=1048576, backupCount=99) 
out.setLevel(logging.INFO) 
err.setLevel(logging.WARNING) 
err.setFormatter(f) 
logger.addHandler(out) 
logger.addHandler(err) 

用法:

logging.info('this doesnt get logged') 
logging.warning('this gets logged to stdout and stderr with respective formatting') 

回答

2

你從來沒有真正設置記錄對象本身(在代碼中logger變量)的日誌級別。處理程序和記錄器都有日誌級別;如果線條高於兩個閾值,線條只會達到輸出。

由於您沒有設置根日誌級別,因此它使用其默認(警告)。嘗試添加一個電話logger.setLevel(logging.INFO)來改變這一點。