即使当传播 = False 时,Python 日志记录模块也会打印到控制台

bud*_*123 7 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
Run Code Online (Sandbox Code Playgroud)

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

Vin*_*jip 9

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

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