如何使用python日志记录修复延迟的输出?

时间:2019-02-23 03:12:50

标签: python-3.x logging python-logging

我正在使用一个基本的记录器来跟踪终端程序的运行情况,并且我发现有时日志会延迟几秒钟或几分钟,甚至是无缘无故地被完全跳过。

这是我的日志记录设置:

import logging
logging.basicConfig(
  level=logging.WARNING,
  format='%(asctime)s %(name)s %(levelname)s %(message)s'
)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

没什么好想的,这里是我使用记录器的代码示例,这里是按键事件之后,但是延迟发生在我决定处理事件之前:

    if event.key == "c":
        if self.mode != "clock":
            logger.info("switching to clock mode")
            self.mode = "clock"
            self.gravitons = []
            self.updateGravitonsKTree()
            self.canShuffle = False
    elif event.key == "f":
        if self.mode != "free":
            logger.info("switching to free mode")
            self.mode = "free"
            self.gravitons = []
            self.updateGravitonsKTree()
    (...)

我确定只有记录器的输出被延迟或跳过了,因为我可以看到程序的其余部分正常且立即做出反应,所以我猜可能有一种缓冲区可能没有正确刷新,但我什么也没看到日志记录模块的文档中对此进行了说明。

也在该程序中,我使用的是matplotlib动画,我怀疑这与该问题有关,但是我承认我对为什么以及如何出现这种情况并不清楚。

有人经历过同样的事情吗?有没有办法“修复”它?

0 个答案:

没有答案