如何将 process.stderr.write 输出到 winston

How to output the process.stderr.write to winston

使用 winston 记录器将内容写入文件,但只有在使用 customlogger.error 时才有效。如果节点正在输出一些参考错误,如下所示

ReferenceError: aksbd is not defined
at /home/nigilan/Desktop/homepagelogger/app.js:53:20
at Layer.handle [as handle_request] (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/layer.js:95:5)
at next (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/layer.js:95:5)
at /home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/index.js:335:12)
at next (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/index.js:275:10)
at /home/nigilan/Desktop/homepagelogger/app.js:38:5
at Layer.handle [as handle_request] (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/layer.js:95:5)

如何使用winston来存储如上的错误?

P.S。记录未处理的异常是 nodejs 服务器工作正常。

`
function formatArgs(args){
    return [util.format.apply(util.format, Array.prototype.slice.call(args))];
}
console.info = function(){
    customlogger.info.apply(customlogger, formatArgs(arguments));
};
console.warn = function(){
    customlogger.warn.apply(customlogger, formatArgs(arguments));
};`

在这里您也可以使用winston 的默认记录器代替您的自定义记录器。下面的要点代码有 this 的完美答案。