2015-06-06 292 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)来改变这一点。