如何在Django中流式传输文件的最后几行?

时间:2012-07-06 07:39:26

标签: python django stream tail supervisord

出于监控目的,我想将日志文件的最后N行流式传输到Django网站界面。 就像显示tail -f filename命令的结果一样。

基本上我想和supervisord一样,它可以从http接口中对进程进行logtail。

关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:3)

根据OP的要求,以下是使用webtail

的示例
$ webtail \
    --port=8000 \
    --files=/var/log/nginx/error.log,/var/log/nginx/access.log \
    --logging=warn

据我所知,OP需要一个支持websockets的解决方案。 Webtails确实如此。如果你查看webtail.py文件:

routes = [(r'/', MainHandler), (r'/tail/', TailHandler),
    (r'/signin/', SigninHandler), (r'/signout/', SignoutHandler)]

其中TailHandler是:

from tornado.websocket import WebSocketHandler

....

class TailHandler(WebSocketHandler):

我正在使用它来监控大量日志,它就像一个魅力:)

答案 1 :(得分:2)

如果你需要在管理面板中,你可以查看django_logtail here

如果您有兴趣,

除此之外还有一个问题here