【问题标题】:howto watch a rotating file with node.js?如何使用 node.js 观看旋转文件?
【发布时间】:2014-01-01 05:49:23
【问题描述】:

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

我是新手,有两个问题:

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

谢谢!

【问题讨论】:

    标签: javascript node.js watch logrotate


    【解决方案1】:

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

    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.
      }
    });
    

    【讨论】:

    • 就是这样,很棒的提示!谢谢,布兰登。
    猜你喜欢
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多