2012-04-30 38 views
16

我想在beta测试时间内记录我项目中的所有JS错误。现在我用下面的方法做到这一点:日志javascript错误

window.onerror = myErrHandler; 

function myErrHandler(message, url, line) 
{ 
    $.ajax({ 
     cache: false, 
     type: "post", 
     data: {error:message, url:url, line:line, brouser:navigator.userAgent}, 
     url: "/Home/LogJavaScript/", 
     async: true 
    }); 
    return true; 
} 

但这种方式无法帮助获得有关调用堆栈的任何信息。所以,有关jQuery或任何其他外部脚本中的错误信息都无济于事。

有什么办法可以改善这种日志记录吗?

+3

:这个链接将有助于http://stackoverflow.com/questions/147891/javascript-exception-stack-trace – dhinesh

回答

10

看看stacktrace.js,这应该可以做到。

+0

有什么例子,你可以将堆栈跟踪存储到某个数据存储(ajax)? –

+2

'stacktrace.js'不会帮助你使用'window.onerror'。它给你的onerror堆栈,而不是实际的错误。如果你想要堆栈,你必须尝试/捕获。 https://github.com/eriwen/javascript-stacktrace/issues/26#issuecomment-2410664 – bendytree

0

你也可以看看我的项目叫Muscula logs your JavaScript errors 这很容易设置,只需添加一个脚本片段,你正在记录。 它是免费的:-)

+2

需要更好的网站设计。 –

+0

这不是免费的。这是每月14美元。 – Rocklan

+0

我发布后它变成了付费。我还在一年前卖掉了它。 –

1

ExceptionHub是另一个很好的投递(付费)服务,它记录JS错误,与堆栈跟踪,组织它们,等

0

看看JsLog.me服务。它捕获错误并收集整个客户端日志,这对于在beta测试中恢复错误复制有帮助。它也适用于混合(PhoneGap/Cordova)应用程序。

1

你也可以尝试https://www.atatus.com/。除了堆栈痕迹外,Atatus还会以一张清晰的图片捕捉所有访客的行为,从而导致错误。除了JavaScript错误追踪,Atatus还提供真实用户监控,AJAX(XHR)监控和事务监控。