다양한 플랫폼에서 심각성에 따라 다양한 함수들이 존재한다.
많은 사람들이 console.log 만 활용하지만 다른 레벨의 log도 잘 활용하면 매우 좋다. 개발 도중에 데이터를 출력해보고 싶을 때 log를 이용한다. 이때 하나의 데이터만을 출력하는 게 아니라 배열 형태로도 전달할 수 있다. 하지만 로그 외에도 심각성에 따라서 다양한 함수를 사용할 수 있다.
console.log('log');
console.info('info');
console.warn('warn');
console.error('error');
node.js 에서는 별 다른 차이 없이 출력된다.
PS C:\Users\yuri\Desktop\yurilee\study\console-log-tip> node console
log
info
warn
error
하지만 브라우저 상에서는 심각성에 따라 조금씩 다른 모습으로 출력된다.
색깔이 표기되지 않음에도 불구하고 이를 심각성에 따라 다른 함수를 사용해야 하는 이유가 있을까?
→ log, info 와 같은 경우는 배포할 때 로그 서비스를 이용한다면 네트워크 요청이 발생하지 않도록 설정할 수 있다. 즉 warning 이나 error 일때만 특정한 일을 할 수 있도록 만들 수 있다.
// assert
console.assert(2 === 3, 'not same!');
console.assert(2 === 2, 'same!');
PS C:\Users\yuri\Desktop\yurilee\study\console-log-tip> node console
Assertion failed: not same!
console.table(data)
를 활용하면 테이블 형태로 출력할 수 있다. console.dir(data)
로그를 사용할 때와 동일하게 출력되지만 옵션을 전달할 수 있다. 오브젝트 안에 또 오브젝트가 있을 때, 얼마나 깊이 있게 표현할 것인지 depth 를 지정할 수 있다. color 옵션을 false 로 설정하면 색상을 끌 수 있다. // measuring time
console.time('for loop');
for (let i = 0; i < 10; i++) {
i++;
}
console.timeEnd('for loop');
PS C:\Users\yuri\Desktop\yurilee\study\console-log-tip> node console
for loop: 6.036ms
// counting
let count = 0;
function a() {
count++;
}
a();
a();
a();
console.log(`a 함수는 ${count}번 실행됨`);
PS C:\Users\yuri\Desktop\yurilee\study\console-log-tip> node console
a 함수는 3번 실행됨
function a() {
console.count('a function');
}
a();
a();
a();
PS C:\Users\yuri\Desktop\yurilee\study\console-log-tip> node console
a function: 1
a function: 2
a function: 3
console.trace();