我正在尝试使用 node.js 观察日志轮换文件并解析每一行的关键字。问题是:在 logrotate 之后,由于打开的文件描述符,我仍在观看旧文件。
我是新手,有两个问题:
- 是否建议在 inode 的每一行之后检查,如果它不相同,则关闭 fd 并再次读取文件“filename”?
- 实现这一目标的最佳方式是什么?试图避免回调并改用事件,或者是否已经有一个库?
谢谢!
最佳答案
轮换日志文件时,它正在重命名。
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/