tail -f logfile.txt 输出最后10行logfile.txt,然后在文件增长时继续输出附加数据.
-f在node.js 中执行该部分的推荐方法是什么?
以下输出整个文件(忽略"显示最后10行")然后退出.
var fs = require('fs');
var rs = fs.createReadStream('logfile.txt', { flags: 'r', encoding: 'utf8'});
rs.on('data', function(data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
我知道事件循环正在退出,因为在流结束和关闭事件之后没有更多事件 - 我很好奇继续监视流的最佳方式.
Roh*_*ngh 43
这样做的规范方法是fs.watchFile.
或者,您可以使用node-tail模块,该模块在fs.watchFile内部使用并且已经为您完成了工作.以下是直接从文档中使用它的示例:
Tail = require('tail').Tail;
tail = new Tail("fileToTail");
tail.on("line", function(data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
node.js有关fs.watchFile状态的APi文档:
稳定性:2 - 不稳定.如果可用,请改用fs.watch.
虽然搞怪,它说,几乎在同样的事情fs.watch:
稳定性:2 - 不稳定.并非适用于所有平台.
无论如何,我继续做了另一个小型网络应用程序TailGate,它将使用fs.watch变体来拖尾文件.
欢迎在这里查看: Gailub上的TailGate.
| 归档时间: |
|
| 查看次数: |
21127 次 |
| 最近记录: |