Yahoo!의 Nicholas Zakas! fame는 Ajax Experience 2008에서 Enterprise Error Handling ( 슬라이드 )에 대해 다음과 같이 이야기했습니다 .
function log(sev,msg) {
var img = new Image();
img.src = "log.php?sev=" +
encodeURIComponent(sev) +
"&msg=" + encodeURIComponent(msg);
}
// usage
log(1, "Something bad happened.")
// Auto-log uncaught JS errors
window.onerror = function(msg, url, line) {
log(1, msg);
return true;
}
1 년 후, Nicholas Zakas는 자신의 블로그 에 프로덕션 환경에서 자동으로 오류 처리 코드를 삽입하기위한 영리한 패턴을 포함한 업데이트를 게시했습니다 (종횡비 프로그래밍 사용).
window.error 호출 로깅을 시작하면 다음 두 가지가 있습니다.
- 사이트가 상당히 복잡한 경우 많은 오류 를 기록하게됩니다
- 당신은 쓸모없는 "window.error in undefined : 0"메시지를 보게 될 것입니다
로그 항목 토렌트를 줄이는 것은 서버에 로깅하기 전에 심각도 및 / 또는 난수를 테스트하는 것만 큼 간단합니다.
function log(sev,msg) {
if (Math.random() > 0.1) return; // only log some errors
var img = new Image();
img.src = "log.php?sev=" +
encodeURIComponent(sev) +
"&msg=" + encodeURIComponent(msg);
}
쓸데없는 "window.error in undefined : 0"오류를 처리하는 것은 사이트 아키텍처에 따라 다르지만 모든 Ajax 호출을 식별하고 무언가 실패 할 경우 예외를 발생시킬 수 있습니다 ( stacktrace.js를 사용하여 스택 추적을 반환 할 수 있음 ).