node.js - 使用节点将文件内容流式传输到标准输出
问题描述
我的 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));
解决方案
推荐阅读
- git - 在 git rebase 中仅列出我们删除、我们添加、他们删除等的文件
- python - 对 MNIST 数字数据集进行分类的 4 层感知器神经网络无法正常工作
- javascript - 如果用户单击屏幕上的任意位置,如何关闭菜单?
- python - 如果超参数调整的影响很小,我该如何改进我的 XGBoost 模型?
- html - wordpress 中的 Html 响应式图像映射
- javascript - 从数组中删除未选择的项目
- spring-boot - 使用 apikey 进行 Spring Boot Swagger 身份验证
- angular - 角度单元测试不会初始化 ag-Grid
- ios - Xcode 签名错误
- r - ggplot地图填充渐变色