[英]How to log JavaScript objects and arrays in winston as console.log does?
[英]How does console.log handle printing strings and objects?
我正在尝试实现自己的类似console.log的东西,并且能够执行以下操作非常方便: console.log('something',obj)
并同时打印它们。
我想重新创建此功能,但首先我必须了解它。
那么console.log
如何做到这一点?
我有这样的事情:
save : function(level, userId, message){
//handles objects
for(var i=2;i<arguments.length;i++){
switch(typeof arguments[i]){
case 'object':
message += ' ' + JSON.stringify(arguments[i]);
break;
case 'string':
message += arguments[i];
break;
case 'number':
message += arguments[i].toString();
break;
}
}
我正在查找message
之后的所有其他参数,然后评估它们正在将它们转换为什么,然后将其附加到message
。
目标是能够做到
logger.save('info', ,'Started app',config.env, config.port, config.etc)
并使其智能地处理所有这些对象。
我不确定console.log的实现,但是您想看看arguments对象:
function myConsoleLog() {
for (var arg in arguments) {
console.log(arguments[arg]);
}
}
myConsoleLog(1, 2, 3);
myConsoleLog({}, "hello");
// etc.
您在寻找arguments
(就像数组一样)。
function test () {
var log = '';
for (var i = 0; i < arguments.length; i++) {
log += arguments[i] + ',';
}
console.log(log.substring(0, log.length - 1));
}
test(1); // 1
test(1,2,3,4) //1,2,3,4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.