即使propagate = False,Python Logging模块也会打印到控制台

时间:2013-08-17 07:14:41

标签: python logging

我试图使用日志记录模块打印到文件。 它工作正常,我的文件有我的日志但它也显示那些日志到我的控制台窗口,我不想发生。 我尝试了以下方法:

logger = logging.getLogger('log')

hdlr = logging.handlers.RotatingFileHandler(LOG_FILENAME, maxBytes=200000, backupCount=3)

formatter = logging.Formatter('%(asctime)s -- %(levelname)s -- \n%(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr) 
logger.setLevel(logging.INFO)
logger.propagate = False
甚至很难,它仍然打印到控制台。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您很可能在某处调用logging.basicConfig(),或调用logging.info()或类似调用(调用模块级函数,而不是记录器方法)。

模块级函数用于简单使用,如果没有为根记录器分配处理程序,则创建并添加控制台处理程序。因此,请确保您没有logging.debug(...)样式调用,并且您没有调用basicConfig()或其他可能正在更改日志记录配置的日志记录配置函数。