拖尾日志很慢
Tailing log is slow
托管在 pythonAnywhere 上,在 jupyter notebook 中工作,我创建了一个记录器
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 日志文件时遇到了类似的问题。
如何减少日志文件拖尾中的这种延迟?
这里是 PythonAnywhere 开发人员。 我们的基础架构需要一些时间才能将日志写入文件。恐怕你这边也无能为力了。
编辑
仔细检查后,我们发现问题有所不同,并且可以在您这边解决。 tail -f
查找文件属性的变化。您的文件是通过 nfs 访问的,它缓存文件属性一段时间,导致 tail -f
的反应延迟。解决方法是 watch -n 0.1 tail [FILE]
,它会立即向您显示对文件的更改。您可以调整 0.1 秒间隔以节省 cpu 时间。
托管在 pythonAnywhere 上,在 jupyter notebook 中工作,我创建了一个记录器
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 日志文件时遇到了类似的问题。
如何减少日志文件拖尾中的这种延迟?
这里是 PythonAnywhere 开发人员。 我们的基础架构需要一些时间才能将日志写入文件。恐怕你这边也无能为力了。
编辑
仔细检查后,我们发现问题有所不同,并且可以在您这边解决。 tail -f
查找文件属性的变化。您的文件是通过 nfs 访问的,它缓存文件属性一段时间,导致 tail -f
的反应延迟。解决方法是 watch -n 0.1 tail [FILE]
,它会立即向您显示对文件的更改。您可以调整 0.1 秒间隔以节省 cpu 时间。