[英]Python logging setLevel not logging
這段代碼中有什么內容可以解釋為什么我的信息消息沒有進入日志。 格式正確的警告及以上內容都會放入兩個日志文件中。
初始化記錄器:
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')
您實際上從未設置過根記錄器對象本身的日志級別(代碼中的logger
變量)。 處理程序和記錄器都有日志級別。 線只有在兩個閾值以上時才達到輸出。
由於您未設置根日志級別,因此它使用其默認值(警告)。 嘗試添加對logger.setLevel(logging.INFO)
的調用以更改此設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.