首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tail浏览器中的tail -f

tail浏览器中的tail -f
EN

Stack Overflow用户
提问于 2010-05-15 03:01:24
回答 3查看 11.9K关注 0票数 8

我已经创建了一个Python脚本,用于监视日志文件的更改(如tail -f),并将其显示在控制台上。我想在the浏览器中访问Python脚本的输出。要创建这个,我需要什么?我在考虑使用Django和jQuery。任何技巧或例子都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-15 04:14:59

首先,创建一个python脚本,用于监视日志文件的更改。如果你只是出于调试-测试的目的而需要它,那么使用Django或其他web框架就太过分了。使用套接字实现Http Web服务器功能非常容易。每当Http GET请求到来时,只处理与不同请求不同的请求。为了实现这一点,您需要在内存中存储每个请求的状态(文件中最后一行的e.g.number)。

jQuery部分实际上非常简单。设置具有setTimeout功能的定时器。下面这样的代码就可以了:

代码语言:javascript
复制
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 <p/> in case of no updates
                $("#logOutputDiv").append(data);
             }
             setTimeout("doUpdate()", 2000);
           }});
}

setTimeout("doUpdate()", 2000);

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

票数 8
EN

Stack Overflow用户

发布于 2010-05-15 03:19:11

我没有任何Python或Django的经验,但我假设你可以用Python语言制作一个像tail这样的system call,并传递细节。

在那里,我将使用一个带有javascript setInterval()循环的jQuery .ajax()调用到您的Python脚本,并将结果输出到网页上的一个div。总的来说,这是一个非常简单的解决方案。

在本例中,您实际上不需要使用open系统调用,因为由于JS setInterval()方法的性质,Python脚本将被反复调用,直到JS clearInterval()方法被调用为止。您将在Python或JS中聚合脚本详细信息,具体取决于您希望在何处完成工作。我建议使用Python,因为这样可以让您拥有更健壮的特性,并且通过AJAX调用发送的数据会更少。从理论上讲,前端的jQuery代码可能不需要太多的逻辑。只显示数据即可。

  • http://api.jquery.com/jQuery.ajax/
  • http://www.w3schools.com/jsref/met_win_setinterval.asp
票数 2
EN

Stack Overflow用户

发布于 2010-05-15 03:30:17

为什么不把数据输出到HTML文件中呢?您可以运行一个cron作业来运行您的脚本,该脚本将弹出一个HTML文件,可以从浏览器访问该文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2836838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档