我使用tailer来解析python中的日志,但是如果服务器上的日志循环,它就会崩溃。可以使用什么决策来代替?tail -f in popen -这不是Pythonic的方式
发布于 2011-12-29 14:10:52
添加日志轮换功能应该不是那么困难。例如,如果您有:
for line in tailer.follow(open('test.txt')):
print line您可以向定期检查下一个文件名是否存在的函数添加一个回调。如果存在,则中断循环,并在新文件上开始一次循环。
发布于 2012-06-20 19:58:54
在logrotate事件上,下一件事将会发生:
尾部模块仍将查看旧的文件inode。
您必须监视日志文件的inode值以确保正确的日志跟踪。这就是“tail-F”的用处。
正如您在其源代码中所看到的,tailer模块并没有被设计为遵循源文件的日志:它基于配方
http://code.activestate.com/recipes/157035/
并且对你的任务没有用处。
请看一下源码食谱的评论。
--
另外,或者使用my one,它是'tail -f‘的包装器:)
http://code.activestate.com/recipes/577398-tail-f-with-inode-monitor/
https://stackoverflow.com/questions/8664239
复制相似问题