我想在我的网站上添加日志查看器标签。该选项卡应该打印整个日志文件,然后打印新行(例如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的新手,所以我会感激任何帮助。
答案 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