【问题标题】:node.js log errors in filenode.js 在文件中记录错误
【发布时间】:2015-04-14 14:15:05
【问题描述】:

我正在尝试将错误记录到 node.js 中的文件中。 我试过温斯顿:

winston= require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ level: 'error' }),
new (winston.transports.File)({ filename: 'error.log' })
]
});

我也试过 console.error:

var log_file_err=
fs.createWriteStream(__dirname + '/error.log', {flags : 'a'});

var err_stdout = process.stderr;

console.error = function(d) { //
log_file_err.write(util.format(d) + '\n');
err_stdout.write(util.format(d) + '\n');
};

生成我使用的错误:

function get_time(date)
{
     return date.getHours()+':'+date.getMinutes();
}
console.log(get_time(Date()));//instead of new Date()

我没有收到更多错误(只是 Date() 所需的未定义),但 error.log 保持为空。“debug.log”(正常日志记录)我使用覆盖的 console.log 正常工作。

【问题讨论】:

  • 没有想法?这种错误是不是因为应用程序崩溃而没有写入文件?如果这是原因,我该如何将此类错误记录到文件中?
  • 在您的 winston 错误日志定义中,如果您传入 level: 'error' 将记录致命错误。我不确定如何捕获所有 console.errors(仍在尝试解决)

标签: node.js file logging


【解决方案1】:

最后我找到了一个非常适合我的解决方案:

var log_file_err=fs.createWriteStream(__dirname + '/error.log',{flags:'a'});  

process.on('uncaughtException', function(err) {
console.log('Caught exception: ' + err);
log_file_err.write(util.format('Caught exception: '+err) + '\n');
});

【讨论】:

  • 这对我来说没问题。没有给我关于出了什么问题的最详细信息,但至少它是一些东西。请注意,要使其正常工作,您需要定义:const fs = require('fs');const util = require('util');
猜你喜欢
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-31
  • 1970-01-01
  • 2020-02-28
相关资源
最近更新 更多