Node.js 如何处理..未处理的';错误';nodejs中的事件
我得到下面的错误,我也知道它是抛出的,因为Node.js 如何处理..未处理的';错误';nodejs中的事件,node.js,Node.js,我得到下面的错误,我也知道它是抛出的,因为server.log文件不存在 但是我想知道的是如何以编程的方式处理这个错误,就像我们对unCaughtException所做的那样 process.on('unCaughtException', function(err){ logger.error(err1) }) 下面是错误,我得到: events.js:141 throw er; // Unhandled 'error' event ^ Error: ENOTDIR: no
server.log
文件不存在
但是我想知道的是如何以编程的方式处理这个错误,就像我们对unCaughtException
所做的那样
process.on('unCaughtException', function(err){
logger.error(err1)
})
下面是错误,我得到:
events.js:141
throw er; // Unhandled 'error' event
^
Error: ENOTDIR: not a directory, stat '../logs/server.log'
at Error (native)
下面是引发此错误的实际代码
module.exports = new winston.Logger({
transports: [
new winston.transports.File({
level: 'info',
filename: '../logs/server.log',
json: false,
maxsize: 5242880, //5MB
maxFiles: 2,
colorize: false
}),
new winston.transports.Console({
level: 'debug',
json: false,
colorize: true
})
],
exitOnError: false
});
从代码判断,您使用的事件发射器在发生错误时发出
错误
事件,在这种情况下,您需要侦听这些事件:
someLibrary({ logfile : '../logs/server.log' }).on('error', function(err) {
...handle the error...
});
更多信息
编辑:在Winston的特定情况下,应将错误
事件处理程序附加到传输实例:
module.exports = new winston.Logger({
transports: [
new winston.transports.File({
level: 'info',
filename: '../logs/server.log',
json: false,
maxsize: 5242880, //5MB
maxFiles: 2,
colorize: false
}).on('error', function(err) {
console.error(err.stack);
}),
new winston.transports.Console({
level: 'debug',
json: false,
colorize: true
})
],
exitOnError: false
});
感谢robert的快速建议…是的,我正在使用winston moudle进行配置logger@Vikash查看有关Winston的详细信息(尽管我不知道这是否适用于Winston本身抛出的错误).我浏览了u共享的链接…我会尝试确定..但这看起来更像是处理异常..不是错误..是否有其他简单的方法来处理此…在下面的链接中。。。给定,我尝试了…logger.on('error',function(err){/*Do Something*/});但这不起作用uncaughtException事件名称错误,uncaughtException是正确的名称。(这是评论,不是回答)