我想将Meteor.Error
消息记录到温斯顿,但我找不到包装函数Meteor.Error
的好方法。
以下是我在互联网上找到的代码:
if (Meteor.isServer) {
logger.info("OVERRIDING METEOR FUNCTION");
// Override Meteor.Error function to log it
const errorFunc = Meteor.Error;
Meteor.Error = function(error, reason, details) {
console.log("TEST");
console.log(error);
console.log(reason);
console.log(details);
logger.error('Error: ' + error, {
error: error,
reason: reason,
details: details,
stack: Error().stack,
tags: ['error']
});
errorFunc.call(this, error, reason, details);
};
throw new Meteor.Error("PATATRA", "PTOEOEORORE");
}
Winston记录错误,但在调用原始Meteor.Error
后,该方法失败并显示以下消息:
(STDERR) /home/me/.meteor/packages/meteor-tool/.1.6.0_1.15l6i5x.c6ri++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280
(STDERR) throw(ex);
(STDERR) ^
(STDERR) [object Object]
我想找到一种方法来正确包装Meteor.error
方法。
答案 0 :(得分:0)
我认为仅删除throw new Meteor.Error("PATATRA", "PTOEOEORORE");
仍将执行默认的new Meteor.Error()
代码。