Python、尾巴和原木

2024-04-29 06:59:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中使用tailer来解析日志,但如果在服务器上轮换日志,它就失效了。什么样的决定可以代替?波本的尾巴-f-这不是Python的方式


Tags: 服务器方式尾巴tailer
2条回答

发生logrotate事件后,将发生下一件事:

  1. 日志文件的索引节点没有更改,但日志被重命名为新名称(例如。注销.1条)
  2. logrotate创建同名的新文件(注销)(我不确定:-)

tailer模块仍将查看旧文件inode。在

您必须监视日志文件的inode值,以便正确跟踪日志。 这就是“尾巴-F”的意思。在

正如您在其源代码中看到的,tailer模块并没有设计成遵循源文件的logrotation:它基于recipe

http://code.activestate.com/recipes/157035/

对你的任务来说是无用的。在

请查看源配方的注释。在

请注意,或者用我的一个,它是“tail-f”的包装器:)

http://code.activestate.com/recipes/577398-tail-f-with-inode-monitor/

添加日志轮换功能应该没那么难。例如,如果您有:

for line in tailer.follow(open('test.txt')):
    print line

您可以向定期检查下一个文件名是否存在的函数添加回调。如果它存在,请退出循环并在新文件上开始一个循环。在

相关问题 更多 >