在webbrowser中尾部-f

我创建了一个Python脚本来监视日志文件的变化(比如tail -f)并在控制台上显示它。 我想在webbrowser中访问Python脚本的输出。 我需要创建什么? 我在考虑使用Django和jQuery。 任何提示或示例都非常感谢。

首先创建一个python脚本,监视日志文件中的更改。 如果您只需要这个用于调试 – 测试目的,那么使用Django或其他Web框架就太过分了。 使用套接字实现Http Web服务器function非常容易。 每当Http GET请求到来时,只提供与不同请求的差异。 为了实现这一点,您需要在内存中存储每个请求的状态(例如文件中最后一行的数字)。

jQuery部分实际上非常简单。 使用setTimeout函数设置计时器。 这样的事情会做:

function doUpdate() { $.ajax({type: "GET", url : tailServiceUrl, success: function (data) { if (data.length > 4) { // Data are assumed to be in HTML format // Return something like 

in case of no updates $("#logOutputDiv").append(data); } setTimeout("doUpdate()", 2000); }}); } setTimeout("doUpdate()", 2000);

您还可以创建错误和超时的回调以报告服务器的问题。

我没有任何Python或Django经验,但我认为你可以在Python中进行系统调用 ,并传递细节。

从那里开始,我将使用jQuery .ajax()调用javascript setInterval()循环到Python脚本,并将结果输出到网页上的div。 总的来说这是一个非常简单

在这种情况下,你真的不需要使用open tail -f系统调用,因为JS setInterval()方法的性质,Python脚本将被反复调用,直到调用JS clearInterval()方法。 您将根据要执行工作的位置在Python或JS中聚合脚本详细信息。 我建议使用Python,因为您可以轻松获得更强大的function,并且可以通过AJAX调用发送更少的数据。 从理论上讲,前端的jQuery代码中可能不需要太多的逻辑。 只显示数据。

为什么不将数据输出到HTML文件? 你可以运行一个cron作业来运行你的脚本,这反过来会喷出一个可以从浏览器访问的HTML文件。