7

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

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

即使很难,它仍然会打印到控制台。任何想法为什么?

4

1 回答 1

9

很可能您有对logging.basicConfig()某个地方的调用,或者对某个地方的调用logging.info()或类似的调用(调用模块级函数,而不是记录器方法)。

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

于 2013-08-18T21:05:22.090 回答