javascript - 如何使用 node.js 观看旋转文件?

标签 javascript node.js watch logrotate

我正在尝试使用 node.js 观察日志轮换文件并解析每一行的关键字。问题是:在 logrotate 之后,由于打开的文件描述符,我仍在观看旧文件。

我是新手,有两个问题:

  1. 是否建议在 inode 的每一行之后检查,如果它不相同,则关闭 fd 并再次读取文件“filename”?
  2. 实现这一目标的最佳方式是什么?试图避免回调并改用事件,或者是否已经有一个库?

谢谢!

最佳答案

轮换日志文件时,它正在重命名。

node.js 中的 fs.watch 函数可以在文件更改时通知您。

http://www.nodejs.org/api/fs.html#fs_fs_watch_filename_options_listener

Try something like:

fs.watch('filetowatch', function (event) {
  if (event === 'rename') {
    // close the file descriptor you are reading from and re-open.
  }
});

关于javascript - 如何使用 node.js 观看旋转文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20566854/

相关文章:

javascript - EJS Node.JS Express - 当 url 具有超过 1 个参数时 css 路径问题

Python 看门狗事件不返回整个 src_path

mongodb - Node.js 监听 MongoDB 变化

javascript - 为什么这个 setInterval 代码不起作用?

javascript - 验证单选按钮

javascript - 使用node js连接SQL Server时出现问题?

ios - 在 podfile 错误中更新 Alamofire

找不到 Javascript 函数

javascript - 获取文档html并删除元素而不影响页面jquery

node.js - 如何从缓存位置:本地存储中检索msal对象?