我想知道是否有人有全局处理JavaScript错误的经验,并将它们从客户端浏览器发送到服务器。
我认为我的观点很清楚,我想知道客户端发生的每个异常,错误,编译错误等,并将它们发送到服务器进行报告。
我主要使用MooTools和head.js
(对于JS方面)和Django用于服务器端。
答案 0 :(得分:305)
我会查看window.onerror
示例:
window.onerror = function(message, url, lineNumber) {
//save error and send to server for example.
return true;
};
请记住,返回true将阻止触发默认处理程序,返回false将使默认处理程序运行。
答案 1 :(得分:17)
我最近在生产中测试了Sentry,它运行良好(JS和PHP等其他语言)
1-它是开源的(您可以将它安装在您自己的服务器上) 2-您可以使用免费计划(每天100份报告)
或者将其安装在您的服务器上:github.com/getsentry
答案 2 :(得分:9)
如果您的网站使用Google Analytics,您可以按我的方式执行操作:
window.onerror = function(message, source, lineno, colno, error) {
if (error) message = error.stack;
ga('send', 'event', 'window.onerror', message, navigator.userAgent);
}
对上述代码的一些评论:
代码到位后,您就可以通过以下方式查看用户' Javascript错误:
Behavior
部分,然后点击Top Events
报告。window.onerror
。Secondary dimension
按钮,然后在显示的文本框中输入Event Label
。答案 3 :(得分:1)
此外,http://jslogger.com服务可以提供帮助:
在云中记录Javascript错误和事件
来自http://jslogger.com/features:
从现在开始,您可以监视破坏网站用户体验的所有错误。每个Javascript错误都会被捕获并提交给您以便稍后进行调试。
免责声明:不隶属于该服务/公司。
答案 4 :(得分:1)
您可以尝试Atatus - 这是一个新的JavaScript错误跟踪服务以及现代网络应用的真实用户监控(RUM)。
我们不仅捕获错误,还捕获触发错误的用户事件。这为您提供了在最后重现错误的步骤。
除了错误捕获之外,我们还捕获页面加载时间并在不同的视角显示它 - 地理位置,浏览器,页面向下钻取,页面直方图,Ajax监控和事务监控。
免责声明:我是Atatus的网络开发人员。
答案 5 :(得分:1)
uncaught库是一种很好的自由方式,可以捕获所有JS错误,包括未处理的拒绝。
答案 6 :(得分:0)
不要尝试使用第三方服务,而要自己尝试。
错误处理程序可以捕获以下情况,
要捕获Javascript错误:
window.addEventListener('error', function (e) {
//It Will handle JS errors
})
要捕获AngularJS错误:
app.config(function ($provide) {
$provide.decorator('$exceptionHandler', function ($delegate) {
return function (exception, cause) {
//It will handle AngualarJS errors
}
})
})
答案 7 :(得分:-1)
您可能想查看这项新服务, http://rescuejs.com/ 。 https://bugsnag.com/
让您自己记录所有的javascript错误,而无需自己编写服务器端代码。它还跟踪浏览器版本等。
我不确定我会认为他们100%“企业准备好了”,但绝对值得一试。