티스토리 뷰


발생일: 2013.07.17

키워드: 에러 스택, 에러 처리, error stack, log, 로그 파일, console.log

문제:
프로젝트에선 `console.log` 대신 별도의 로거 파일을 구현해서 사용하고 있다.

그러다보니, 로그나 에러를 출력할 때 로그 발생 위치가 `logger.js`가 표시된다.


로그를 출력할 때, 로거를 호출한 파일을 출력할 수 없을까~?



해결책:

http://stackoverflow.com/questions/1340872/how-to-get-javascript-caller-function-line-number-how-to-get-javascript-caller


위 링크에서 잘 설명해주고 있는데,

로거에서 에러를 던지고 에러 스택의 문자열을 파싱하는 방식이다.


우리 프로젝트에서는 옆자리 D가 이 부분을 구현했는데,

브라우저마다 에러 객체의 스택 문자열이 달라서 분기하는 코드가 있었던 걸로 기억한다.


매번 에러를 던지고 잡는 구조라 성능 이슈가 있을 수 있으니,

프로덕트에 나가는 코드에선 로그를 제거하거나 출력 레벨을 조정할 필요가 있다.


반응형
댓글
공지사항