我有一个简单的nodejs docker服务。我在开发中观看stdout,在生产中登录到aws cloudwatch。
我刚刚添加了永久监视器,但这会中断我的日志记录。所以我开始在孩子的过程中捕捉stdout,

const forever = require('forever-monitor');

const child = new (forever.Monitor)('server.js', {
  max: 3,
  silent: true,
  args: []
});

child.on('stdout', function(data) {
  console.log(data);
});

但那只是给了我字节码-
[nodemon] starting `node forever.js`
<Buffer 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 6c 69 76 65 20 64 62 0a>

如何将我的console.log语句重新输入std?

最佳答案

看起来data是一个流(参见node docs)。
我已将代码更新为-

child.on('stdout', function(data) {
  console.log(data.toString());
});

现在一切如期而至。(我发现this question很有用)。

关于node.js - 我如何使用npm forever-monitor登录到stdout,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44457375/

10-15 00:03