我正在使用Winston来登录node.js应用程序。它是一个很棒的工具,但是由于node.js的异步特性,日志文件中特定函数的日志条目分散在其中并与其他函数混合。这使得对日志的分析非常困难,尤其是当您处于多次调用相同函数的循环中时。
例如,
function query(id, callback) {
logger.verbose('start', id);
db.query({id:id}, callback)
}
var ids = [1, 2, 3, 4, 5];
for(var i = ids.length - 1; i >= 0; i++) {
query(ids[i], function(err, result) {
if(err) logger.error('db error', id, err);
else logger.verbose('db result', id, result);
callback();
}
}
首次参赛肯定是
start 5
所有后续日志条目的外观都将变得不可预测,因此特定查询的跟踪错误非常困难。
我的问题是: