我正在使用Winston(Logger for nodejs)。
在我的剧本中,我打电话:
log.error("my error", {input: [1,2]});
控制台告诉我:
error: my error input=[1, 2]
我想做什么:不要在log.error上调用(null)
在某些函数中,我使用变量动态调用log.error,并且不知道变量是NULL还是具有值。如果我调用log.error(null),他会将“error:”写入控制台。
我试过这个:
log.error = (function () {
var old = log.error;
return function newerror() {
if (arguments.length !== 0) {
old(arguments);
}
};
})();
但现在我得到了:
error: 0=my error, input=[1, 2]
作为输出。
我的问题
如何使用给定的die参数调用log.error()函数(javascript中的arguments-var是一个对象)。
功能样式:
function foo(arg1,arg2,...)
我想要类似的东西:
foo.call(myargumentsobj);
答案 0 :(得分:0)
哦,我明白了:
old.apply(this, arguments);