Linux向日志文件添加监听器

标签 linux logging

是否有比使用 inotify 更好的方法来监视文件日志更改? (http://linux.die.net/man/7/inotify)。我有几个写入不同日志文件的软件,并且每次将新行添加到日志时我都想进行 POST 查询。

目前,我的建议是设置inotify来监听文件更改,获取自上次访问以来更改的数据并进行发布。

重要的事情: 对事件的 react (至少 1 秒)。 CPU 和 HDD 消耗低。 保留日志文件(即我希望它在机器上完整且未经修改)。

每 1 分钟添加一次新行。

感谢您的想法。

最佳答案

Inotify 非常适合获取有关文件事件(例如写入等)的通知,但您如何知道已附加了多少数据?如果您提前知道日志文件,您可能会一直读到文件末尾,然后休眠一小会儿,然后再次尝试读取(类似于“tail -f”)。这样,您仍然拥有指向开始读取新写入数据的位置的指针。您甚至可以将其与 Inotify 结合起来,以了解何时开始阅读。如果您只想使用 Inotify,您可能必须将指向最后读取位置的指针存储在某处。

关于Linux向日志文件添加监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333567/

相关文章:

c - 在 C 中读取大缓冲区 - 高效技术

linux - r-base-dev 由于依赖关系不会安装

java - JBoss AS 7.1.1 Final 和 Log4j

java - 在Java中-我可以设置线程的日志级别吗?

java - 无法为元素 RollingFile 创建 org.apache.logging.log4j.core.appender.RollingFileAppender 类型的插件

java - Spring 启动: Logback logs only from one module

python - 创建简单的 flask 错误应用程序来记录异常

linux - 用于捕获用户拥有的文件的 Cgi-bin 脚本

python - 如何在 Windows 中使用 mrec?

c -/proc/partitions 主要和次要编号以检测物理磁盘和分区