有没有更好的方式来监控日志文件?(针对Linux/Python)

5

我正在尝试监控在Linux上运行的一些进程生成的日志文件(以创建一个联合日志文件,其中日志条目按其发生时间分组)。目前我考虑打开被记录的文件、使用inotify(或包装器)轮询文件,然后检查是否可以读取文件的更多内容。

有没有更好的方法来完成这个任务?也许有一些库可以抽象出被观察文件中的读取/更改操作?


你尝试过使用 select() 吗? - hochl
Inotify或轮询修改时间可能是您最好的选择。 - Some programmer dude
@hochl select 检查文件描述符是否可读或可写,它不检查描述符(可能是任何描述符,大多数情况下是套接字)是否已经被“源”修改。 - Some programmer dude
嗯,我是指问题中的 然后检查是否可以继续读取文件 部分应使用 select() - hochl
2
@hochl 我对文件不是完全确定,但我认为 select 始终会说文件可读。 - Some programmer dude
我认为你是正确的:文件描述符在文件结尾时也准备好了(来自 man 2 select)。 - hochl
3个回答

3

为什么不能只用 "tail -f" 呢?你可以在 Python 中使用 popen 和 pipes 来处理这个问题。


2

0
如果你自己做,你可能会像这样做:如果检测到文件修改,请获取文件的大小。如果它比上次大,您可以寻找到先前的“最后”位置(即先前的大小),然后从那里读取。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接