【发布时间】:2020-04-06 05:49:10
【问题描述】:
我的 NodeJS 应用程序正在使用 pino 进行基于 JSON 的日志记录。 Pino 将日志文件发送到标准输出。我只是使用 ./app.js >> filename.log 将输出保存到文件中。我想设置一个小脚本,该脚本将不断流式传输日志文件,类似于尾部的 -f 标志。我不希望应用程序在到达文件末尾时退出,而是等待其他数据流式传输。我可以让文件回显到标准输出,但是一旦到达文件末尾,它就不会继续流。
const fs = require('fs');
const split = require('split2')
const pump = require('pump')
// Attempt 1
fs.createReadStream(file)
.pipe(split(JSON.parse))
.on('data', function (obj) {
console.log(obj);
})
pump(process.stdout, streamToElastic);
// Attempt 2
const readStream = fs.createReadStream(logFileLocation);
pump(readStream.pipe(process.stdout), split(JSON.parse));
【问题讨论】: