【发布时间】:2016-10-24 10:22:44
【问题描述】:
我目前正在为嵌入式系统编写网站。目标是读取一个日志文件并使用日志文件内容修改一个 json 文件。
日志文件不断被另一个程序写入
Web 应用程序将使用 NodeJs 和 socket.io 完成。也许还有另一种方法可以在 html 页面上实时显示这些日志数据?
如果我只是打开日志文件,它会锁定它吗?我有时间打开它,执行算法并在 1 秒内关闭它吗?
有没有办法让它保持打开并始终阅读最后一行?
我找到了这篇文章:“Reading from a frequently updated file”,但它是用 Python 写的。
附加信息 写入日志文件的程序可以更新。一种可能性是用单行编辑文件(这是大日志文件中的最后一个)。这条独特的线路将每秒更新一次
【问题讨论】:
-
您正在寻找类似于 Linux 的 tail 命令的东西,对吧?考虑到随着日志文件的增长,重新加载它会花费越来越多的时间(考虑到您的方法似乎包括日志文件大小可能达到几 MB 或更多的情况......不切实际)。
-
是的,先生,尾巴,但我只需要最后一行,每秒一个新行
-
Hummm.... 可能有解决方案(就像下面 Carlos 建议的那样,但是... 日志文件可以变成多大?看到了吗?获取文件的“TAIL”可能意味着实际扫描它以找到最后一条记录。如果您对写入日志的程序有任何控制,我建议该程序写入两次:一次将一行附加到日志,而第二次写入另一个文件最后一次写行(替换之前的内容)。这可能看起来有点难看,但就性能而言,它可能是最好的解决方案。
-
看看我的编辑 :)
-
没错。去吧。
标签: javascript node.js logging real-time