我有外部程序,例如 ffmpeg 和 gstreamer 在后台运行并写入日志文件。我想用我的 Flask 应用程序显示此日志的内容,以便用户可以观看日志更新,就像 tail -f job.log
在终端中所做的那样。
我尝试使用 <object data="/out.log" type="text/plain">
指向日志文件,但未能显示数据,或者浏览器告诉我我需要一个插件。
如何在 HTML 页面中嵌入和更新日志文件?
原文由 Sina Sh 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 Flask 视图从文件中持续读取并流式传输响应。使用 JavaScript 从流中读取并更新页面。此示例发送整个文件,您可能希望在某个时候截断该文件以节省带宽和内存。此示例在读取之间休眠以减少无限循环的 cpu 负载并允许其他线程有更多活动时间。
这几乎与 这个答案 相同,它描述了如何流式传输和解析消息,尽管永远从外部文件读取足够新颖,可以成为它自己的答案。这里的代码更简单,因为我们不关心解析消息或结束流,只关心永远拖尾文件。