【问题标题】:Is there a better way to monitor log files?(linux/python)有没有更好的方法来监控日志文件?(linux/python)
【发布时间】:2011-11-22 13:07:31
【问题描述】:

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

有没有更好的方法来做到这一点?也许是某个库抽象了所观看文件的读取/更改?

【问题讨论】:

  • 您是否尝试过使用select()
  • 通知或轮询修改时间可能是您最好的选择。
  • @hochl select 检查是否可以读取或写入文件描述符,它不检查描述符(可能由任何描述符,主要是套接字)是否已修改“源”。
  • 呃,是的,我的意思是select() 用于然后检查我是否可以阅读更多的文件部分的问题。
  • @hochl 我对文件不太确定,但我认为select 总是会说文件是可读的。

标签: python linux logging


【解决方案1】:

为什么“tail -f”不够用?您可以使用 popen 和管道从 Python 处理此问题。

【讨论】:

    【解决方案2】:

    Generator Tricks For Systems Programmers 展示了如何使用Python generators 来解决此类问题;具体来说,监控(大)日志文件。我建议阅读一下。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-17
        • 1970-01-01
        • 1970-01-01
        • 2011-07-30
        • 2023-03-11
        • 2022-12-07
        • 1970-01-01
        • 2012-06-30
        相关资源
        最近更新 更多