use*_*738 3 logging file node.js
我正在尝试将错误记录到 node.js 中的文件中。我试过温斯顿:
winston= require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ level: 'error' }),
new (winston.transports.File)({ filename: 'error.log' })
]
});
Run Code Online (Sandbox Code Playgroud)
我也尝试过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');
};
Run Code Online (Sandbox Code Playgroud)
为了生成错误,我使用了:
function get_time(date)
{
return date.getHours()+':'+date.getMinutes();
}
console.log(get_time(Date()));//instead of new Date()
Run Code Online (Sandbox Code Playgroud)
我没有收到更多错误(只是 Date() 想要的未定义错误),但 error.log 保持为空。“debug.log”(正常日志记录)我使用覆盖的 console.log 可以正常工作。
最后我找到了一个非常适合我的解决方案:
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');
});
Run Code Online (Sandbox Code Playgroud)