나는 console.log 함수를 사용하여 내 로그에 정보를 추가하고 로그 할 정보가 객체인지 여부를 확인합니다. 정렬의 로그 항목을 피하기 위해 이렇게합니다.괄호 뒤에 새 줄을 추가하십시오.
2016-12-17 (22:12:51) > [object Object]
코드는 객체가 아닌 인수를 전달할 때 잘 작동합니다. 예를 들어, 명령
console.log("hello","world");
인쇄
2016-12-17 (22:23:53) > hello
2016-12-17 (22:23:53) > world
하지만 나뿐만 아니라 객체를 전달하면, 코드가 객체 후 새 줄을 삽입 할 수 없게됩니다. 예를 들어, 명령
console.log("hello",{world:true,hello:{amount:1,text:"hello"}},"world");
인쇄
2016-12-17 (22:27:32) > hello
2016-12-17 (22:27:32) > { world: true, hello: { amount: 1, text: hello } } 2016-12-17 (22:27:33) > world
(객체를 표시 한 후 누락 된 줄 바꿈을 참고).
코드
JQuery와 3.1.1
main.js :
(function (proxied) {
function displayArg(argument){
var result= "";
if(typeof argument == "object") {
result += "{ ";
for (i in argument) {
result += i + ": ";
result += (displayArg(argument[i]));
result += ", "
}
result = result.substring(0,result.length - 2);
result += " }";
return result;
} else {
return argument;
}
}
console.log = function() {
var result = [];
for (i in arguments) {
var d = new Date();
result[i] = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate() +
" (" + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds() + ") > ";
result[i] += displayArg(arguments[i]);
result[i] += "\n";
}
return proxied.apply(this, result);
}
})(console.log);
이전 정의를 인수별로 개별적으로 호출 할 가능성을 분석 했으므로 새 줄을 처리 할 필요가 없습니다. 사실, 하나의 호출 만하는 대신 인수 (결과 [i]) 당 함수를 호출하는 것이 너무 어렵지 않습니다. 그러나 코드는 console.log에서 반환 한 정보를 사용하며 사용자가 한 번만 호출했을 때 내부적으로 여러 번 호출하면 솔루션보다 복잡해질 수 있습니다. – Emilio