此代码中是否有任何内容可以解释为什么我的信息消息不会进入日志。正确格式化的警告及以上警告将进入两个日志文件。
初始化记录器:
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')
答案 0 :(得分:2)
您实际上从未实际设置 root 记录器对象本身的日志级别(代码中的logger
变量)。处理程序和记录器都有日志级别;如果行超过两个阈值,则只会到达输出。
由于您未设置根日志级别,因此它使用其默认值(警告)。尝试添加对logger.setLevel(logging.INFO)
的调用以更改该内容。