我想知道是否有人在全局处理JavaScript错误并将其从客户端浏览器发送到服务器方面有经验。
我认为我的观点很明确,我想知道客户端发生的所有异常,错误,编译错误等,并将其发送到服务器以进行报告。
我主要使用MooTools和head.js
(对于JS端)和Django作为服务器端。
我想知道是否有人在全局处理JavaScript错误并将其从客户端浏览器发送到服务器方面有经验。
我认为我的观点很明确,我想知道客户端发生的所有异常,错误,编译错误等,并将其发送到服务器以进行报告。
我主要使用MooTools和head.js
(对于JS端)和Django作为服务器端。
Answers:
我最近在生产环境上测试了Sentry,它工作正常(JS和其他语言,如PHP)
1-它是开源的(您可以将其安装在自己的服务器上)2-您可以使用免费计划(每天100次报告)
或将其安装在您的服务器上:github.com/getsentry
我会检出window.onerror
例:
window.onerror = function(message, url, lineNumber) {
//save error and send to server for example.
return true;
};
请记住,返回true将阻止默认处理程序的触发,返回false将使默认处理程序运行。
如果您的网站使用的是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
在出现的文本框中输入,为用户的OS /浏览器版本添加一列。不要尝试使用第三方服务,而要自己尝试。
错误处理程序可以捕获以下情况,
要捕获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
}
})
})
另外,http://jslogger.com服务可以帮助您:
在云端记录Javascript错误和事件
来自http://jslogger.com/features:
从现在开始,您可以监视所有破坏网站用户体验的错误。每个Javascript错误都会被捕获,并带给您进行以后的调试。
免责声明:与服务/公司无关。
您可以尝试Atatus-它是针对现代Web应用程序的新JavaScript错误跟踪服务,以及Real User Monitoring(RUM)。
我们不仅捕获错误,还捕获引发错误的用户事件。这为您提供了最终重现错误的步骤。
除了捕获错误外,我们还捕获页面加载时间,并从不同的角度显示页面加载时间-地理位置,浏览器,页面下钻,页面直方图,Ajax监视和事务监视。
免责声明:我是Atatus的一名Web开发人员。
您可能想查看此新服务,http://rescuejs.com/。https://bugsnag.com/
让您无需编写服务器端代码即可记录所有javascript错误。它还跟踪浏览器版本等。
我不确定我是否会认为他们100%“准备就绪”,但是绝对值得一试。