如何通过 Web 实时查看日志文件(类似于“tail -f”)

如何通过 Web 实时查看日志文件(类似于“tail -f”)

我有一台运行多项任务的服务器。每项任务都有一个日志文件。我有一个 Web 服务器,可以让你查看这些日志文件,但它只是将文件的内容复制到浏览器,用户必须反复按 F5 键……

有没有办法为指定的日志生成干净的滚动“实时”视图?类似于终端窗口中的“tail -f”。

答案1

这是可能的,但如果日志填满得很快,那么可能就不太实际了。这将需要

  • 跟踪日志文件的脚本。
    • 它可以检查文件在上次检查后是否发生了变化,以及可能增加了多少。
    • 然后它应该从文件末尾获取数据:增加的字节数或足够数量的行数,以比较新内容。这取决于是否可以跳过一些行,并且可能比仅仅 更棘手tail -f
    • 持续运行tail -f可能是脚本的来源,但这可能是一个糟糕的设计:缓冲区可能会变得很大,或者被其他用户刷新。
    • 该脚本将以 JSON 格式输出文件。
  • 一个 JavaScript
    • 定期调用前一个脚本并
    • 将新行添加到网页元素中。
    • 也许添加上述几行会更适合网络?

log如果你在 Google 上搜索、tail& ,可能会有这样的工作或部分工作已经完成。AJAX我不知道这些项目的质量如何,而且大多数项目似乎相当老旧且无人管理。

答案2

您正在寻找的是实时日志浏览器,它是一种简单的软件,可以监听带有日志或 STDIN 的文件并将其打印到 UI。根据您要解决的问题,有几种工具可用于此目的。我认为目前市场上最先进的是洛迪由于您只下载了预编译的二进制文件,因此它可以使用任何输入运行,例如:

$ tail -f file.log | logdy

运行它,您将获得流式传输到 Web UI 的所有内容。它还支持监听多个文件,甚至可以打开端口并监听 TCP 套接字,检查文档并在博客中介绍更多用例。

还有其他类似的工具,例如:

相关内容