如何将写入process.stderr的错误显示在AWS Lambda控制台中?

时间:2017-10-31 15:50:31

标签: node.js aws-lambda

我无法控制的第三方图书馆(即:puppeteer)正在将错误记录到process.stderr

在Aws Lambda中运行时,我想记录这些错误,以便我可以检查它们。 (process.stder和process.stdout不会显示在Lambda控制台中)

在Lambda afaik中这样做的方法是使用console.error / console.log等,它们在Lambda中有特殊的实现。

我认为最好的办法是做一些事情:

process.stderr.on('data', function (buffer) {
  console.error(buffer.toString())
});

但这也没有给我任何结果。

如何将写入process.stderr的错误显示在Aws lambda控制台中?

1 个答案:

答案 0 :(得分:3)

通过覆盖process.stderr.write来管理修复它,如下所示:

process.stderr.write = (function () {
  return function (buffer) {
    //NOTE: console.error doens't use process.stderr in Aws lambda, so this doesn't result in a livelock
    console.error(buffer.toString()); 
  };
}());