我正在尝试使用日志记录模块打印到文件。 它工作正常,我的文件有我的日志,但它也将这些日志显示到我的控制台窗口,这是我不希望发生的。 我尝试了以下方法:
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
即使很困难,它仍然会打印到控制台。 有什么想法吗?
最佳答案
很可能您在某个地方调用了 logging.basicConfig()
,或者调用了 logging.info()
或类似的(调用模块级函数,而不是记录器方法)。
模块级函数旨在简单使用,如果没有为根记录器分配处理程序,则创建并添加控制台处理程序。因此,请确保您没有 logging.debug(...)
样式调用,并且您没有调用 basicConfig()
或其他可能会更改您的日志记录配置函数日志记录配置。
关于即使在propagate=False 时,Python 日志模块也会打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18286191/