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

时间:2013-12-13 12:43:10

标签: javascript node.js watch logrotate

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

我是新手,有两个问题:

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

1 个答案:

答案 0 :(得分: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.
  }
});