Node.js ExpressJS框架(nodejs)只将堆栈错误记录到文件中

Node.js ExpressJS框架(nodejs)只将堆栈错误记录到文件中,node.js,http,express,error-handling,Node.js,Http,Express,Error Handling,我只想将会使系统崩溃的错误记录到一个error.log单独的文件中 我已经使用以下代码将Morgan的http请求记录到一个文件中: // create a write stream (in append mode) var accessLogStream = fs.createWriteStream(__dirname + '/logs/access.log', {flags: 'a'}) // setup the logger app.use(logger('short', {stream:

我只想将会使系统崩溃的错误记录到一个error.log单独的文件中

我已经使用以下代码将Morgan的http请求记录到一个文件中:

// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(__dirname + '/logs/access.log', {flags: 'a'})
// setup the logger
app.use(logger('short', {stream: accessLogStream}));
但我想登录到一个单独的文件(error.log)此类应用程序错误:

//Error handling, avoiding crash
process.on('uncaughtException', function (err) {
  console.error(err);
  console.log("Node NOT Exiting...");
});
如何将error.stack记录到该文件中

process.on('uncaughtException', function (err) {
  console.error(err);
  console.log("Node NOT Exiting...");
  accessLogStream.write(err.stack);
});
像那样给小溪写信应该行得通!虽然我还没有测试过,但是由于使用异步编写,可能会导致一些问题。我通常只是把一个物体推到达达基上。差不多

 {
     err : myError,
     time : new Date()
 }
根据奥登的回答:

//Create error log Stream
var errorLogStream = fs.createWriteStream(__dirname + '/logs/error.log', {flags: 'a'})

//Error handling, avoiding crash
process.on('uncaughtException', function (err) {

var date = new Date();
  console.error(err);
  errorLogStream.write(date+ '\n'+ err.stack+'\n\n');

});
日志输出:

Mon Nov 17 2014 02:21:05 GMT-0300 (ART)
TypeError: Cannot read property 'payment_credits' of null
    at Promise.<anonymous> (/home/routes/api/chainWebhook.js:65:26)
    at Promise.<anonymou>(/home//node_modules/mongoose/node_modules/mpromise/lib/promise.js:177:8)
    at Promise.emit (events.js:95:17)
2014年11月17日星期一02:21:05 GMT-0300(艺术)
TypeError:无法读取null的属性“payment\u credits”
答应。(/home/routes/api/chainWebhook.js:65:26)
承诺。(/home//node_modules/mongoose/node_modules/mpromise/lib/Promise.js:177:8)
在Promise.emit(events.js:95:17)
注意: