【问题标题】:Python Logging module prints to console even when propagate=False即使传播 = False,Python 日志记录模块也会打印到控制台
【发布时间】:2013-08-19 14:53:02
【问题描述】:

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

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

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

【问题讨论】:

  • 你用什么日志功能来记录? logger.log?
  • 我改用logger.exception(msg) 或错误/信息

标签: python logging


【解决方案1】:

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

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

【讨论】:

  • 我使用 basicConfig 创建了我的课程的另一个版本,确实,它现在可以工作了。谢谢
猜你喜欢
  • 2016-03-21
  • 1970-01-01
  • 2021-10-07
  • 2020-08-26
  • 2017-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
相关资源
最近更新 更多