【问题标题】:Catch browser Javascript exception in production and send notification在生产中捕获浏览器 Javascript 异常并发送通知
【发布时间】:2020-03-24 11:04:38
【问题描述】:
我有 Rails 5 应用程序,在这个应用程序中我使用 gem 'exception_notification'。
如果在生产模式下出现问题,这个很棒的 gem 会向我发送电子邮件通知。
但此通知仅适用于 rails 后端。
你能告诉我一些用于浏览器中 Javascript 前端的模拟 JS 库吗?
我的目标是在生产模式下在浏览器中捕获 JS 异常向服务器发送一些请求,然后服务器向我发送带有错误描述、堆栈跟踪信息等的通知(电子邮件)。
我知道 window.onerror 事件。
但在那种情况下,我应该手动处理所有这些。
可能有一些带有交钥匙解决方案的 JS 库?
谢谢。
【问题讨论】:
标签:
javascript
ruby-on-rails
exception
monitoring
【解决方案1】:
所以我决定使用
var deviceAPIloaded = false,
gOldOnError = window.onerror;
window.onerror = function(errorMsg, url, lineNumber, columnNumber, error) {
if (! deviceAPIloaded) {
$.getScript('https://theapicompany.com/deviceAPI.js', function() {
deviceAPIloaded = true;
sendErrorInfo(errorMsg, url, lineNumber, columnNumber, error);
});
} else {
sendErrorInfo(errorMsg, url, lineNumber, columnNumber, error);
}
if (gOldOnError) return gOldOnError(errorMsg, url, lineNumber);
return false;
}
在函数 sendErrorInfo 中收集错误和设备信息并将其发布到服务器。