2013-02-25 3 views
1

예외가 발생할 때 스택 추적을 캡처하기 위해 https://github.com/eriwen/javascript-stacktrace을 사용했습니다.예외 로깅 JavaScript, 캡처 스택 추적

로그 된 정보가 매우 이상하게 보입니다. 예를 들어 사용자가 IE9를 사용하고 기록 된 메시지가 at {anonymous}()
 at printStackTrace()
 at {anonymous}(#object,"error","")
 at {anonymous}(#object,[#object...""])
 at d(12031,"",#object,"")
 at {anonymous}() 인 경우가 있습니다. 내 코드에서

나는 꽤 jQuery를 이벤트 처리 코드

$(document).ready(function() { 
    $('#reset').bind('click', reset); 
} 

function reset(e){ 
    $.ajax({ 
     type: 'POST', 
     url: '/my/url', 
     dataType: "json", 
     success: function (result) { 
      // do something useful 
     }, 
     error: function (request, error) { 
      // log to server side. 
      logError(error, printStackTrace()); 
     } 
    }); 
} 

내가 캡처 스택 추적 그냥 익명의 객체처럼이 경우에 생각을 가지고있다.

더 쉽게 읽을 수있는 방식으로 스택 추적을 캡처 할 수 있습니까?

답변

0

나는 이유를 알고 있다고 생각 : 당신은 스택 추적을 가진 문자열을 가지고 그것을 조금 더 예뻐를 만들 수 있습니다.

그래서 코딩에서 디버거가 이름을 캡처 할 수 있도록 함수를 만드는 방법을 고려해야합니다.

0

의 try catch 블록에 대해 자바 스크립트의 각 기능은 발신자 속성을 가지고하는 데 사용

<script> 
var txt=""; 
function message() 
{ 
try 
    { 
    adddlert("Welcome guest!"); 
    } 
catch(err) 
    { 
    txt="There was an error on this page.\n\n"; 
    txt+="Error description: " + err.message + "\n\n"; 
    txt+="Click OK to continue.\n\n"; 
    alert(txt); 
    } 
} 
</script> 

http://www.w3schools.com/js/js_errors.asp

0

링크 살펴보고 있지만, 보안 제한 사항으로 인해 당신은 더 이상 믿을 수없는 방법 .

익명 기능에 대해 할 수있는 일은 많지 않습니다. 익명 기능은 단순히 이름이 없기 때문에 할 수 있습니다. http://kangax.github.com/nfe/function expressions is the only way to get a truly robust stack inspection에 따라,

function prettyTrace(stackTrace) { 
    if (!stackTrace || stackTrace === "") 
     return ""; 

    return stackTrace.replace(/\&[^;]+\;/, ""); 
}