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

Mar*_*rco 4 javascript logrotate watch node.js

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

我是新手,有两个问题:

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

谢谢!

Bra*_*don 5

旋转日志文件时,将重命名该日志文件.

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.
  }
});
Run Code Online (Sandbox Code Playgroud)