拖尾日志很慢

时间:2019-03-31 09:16:55

标签: python logging pythonanywhere

托管在pythonAnywhere上,在jupyter笔记本中工作,我创建了一个记录器

import logging
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    filename="/home/jaa/bot/ma_clipboard.log",
    level=logging.INFO)
logger=logging.getLogger(__name__)
logger.info(f"enabled the logger {logger}")

与此同时,在bash shell中,我拖尾了日志文件: tail -f ma_clipboard.log

在笔记本中,我正在使用python-telegram-bot,它正在处理来自外部的用户输入。

我的问题是,当我有目的地记录某些内容或发生未捕获的异常时,日志尾部更新不会很快。有时我不得不等待几分钟。这对于调试非常烦人。

我不确定延迟的根源是什么。 logger模块? tail命令?还有吗我认为它不是python-telegram-bot所独有的,也不是我在Jupyter Notebook中工作,因为去年我在django日志文件中遇到了类似的问题。

如何减少日志文件尾部的延迟?

1 个答案:

答案 0 :(得分:4)

这里是PythonAnywhere开发人员。 我们的基础架构需要一些时间才能将日志写入文件中。恐怕您可能对此无能为力。

修改

仔细检查后,我们发现问题有所不同,可以解决。 tail -f寻找文件属性的更改。您的文件通过nfs访问,该文件正在缓存文件属性一段时间,导致tail -f的响应延迟。解决方法是使用watch -n 0.1 tail [FILE]来立即显示对文件的更改。您可以调整0.1秒间隔以节省CPU时间。