拖尾日志文件

时间:2015-09-03 12:16:15

标签: python linux cherrypy

我想在我的网站上添加日志查看器标签。该选项卡应该打印整个日志文件,然后打印新行(例如Linux中的tail -F命令)。客户端是HTML和Javascript,服务器端是Python。

这是我的尾部Python函数(我在网上找到它):

@cherrypy.expose
def tail(self):
    filename = '/opt/abc/logs/myLogFile.log' 
    f = subprocess.Popen(['tail','-F',filename],\
            stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    p = select.poll()
    p.register(f.stdout)

    while True:
        if p.poll(1):
            print f.stdout.readline()
    time.sleep(1)

此代码确实打印了整个日志文件。但是,每次我向文件添加新行时,文件都从头开始打印,而不是打印新行。

有任何建议如何解决?我是Python的新手,所以我会感激任何帮助。

1 个答案:

答案 0 :(得分:1)

查看pytailer

https://github.com/six8/pytailer

特别是follow命令:

# Follow the file as it grows
for line in tailer.follow(open('/opt/abc/logs/myLogFile.log')):
    print line