我已經使用angular重寫了一個web應用程序。但是現在我遇到這樣的問題,它不像window.onerror = function(...) { ... }
那樣容易將客戶端錯誤發送到服務器。但這對於檢測錯誤非常有用。AngularJS:客戶端錯誤的服務器端日誌記錄
我添加了一個自定義異常處理程序的角度使用下面的代碼
但這不會讓我得到其中的例外是從哪裏來的位置。任何提示/經驗如何解決這個問題?我也喜歡能夠與http://stacktracejs.com/
我已經使用angular重寫了一個web應用程序。但是現在我遇到這樣的問題,它不像window.onerror = function(...) { ... }
那樣容易將客戶端錯誤發送到服務器。但這對於檢測錯誤非常有用。AngularJS:客戶端錯誤的服務器端日誌記錄
我添加了一個自定義異常處理程序的角度使用下面的代碼
但這不會讓我得到其中的例外是從哪裏來的位置。任何提示/經驗如何解決這個問題?我也喜歡能夠與http://stacktracejs.com/
我目前使用TraceKit這似乎工作得很好。
只需添加到您的角度啓動代碼
$provide.decorator("$exceptionHandler", function($delegate) {
return function(exception, cause) {
TraceKit.report(exception);
$delegate(exception, cause);
};
});
+這個地方
TraceKit.report.subscribe(function(errorReport) {
var msg = 'msg: ' + errorReport.message + '\n\n';
msg +="::::STACKTRACE::::\n"
for(var i = 0; i < errorReport.stack.length; i++) {
msg += "stack[" + i + "] " + errorReport.stack[i].url + ":" + errorReport.stack[i].line + "\n";
}
// log to server
...
}
工作的解決方案免責聲明:Im django爲基礎的應用程序開發人員。
我可以建議你使用基於raven的解決方案。它是基於django的帶有許多綁定(也是javascript)和偉大的監控應用程序sentry的日誌聚合服務。
我們可以使用stacktrace.js by Eric Wendelin
AngularJS
具有良好的錯誤處理。stacktrace.js
試圖解決在所有瀏覽器中獲取正確錯誤信息的重要問題。所以我們可以創建一個圍繞stacktrace.js的角度包裝,它提供了一個全面的錯誤處理。
以下是2篇博客文章,非常好地解釋瞭如何使用AngularJS
和stacktrace.js
將客戶端JS錯誤記錄到服務器端。
作爲參考,我們現在可以從異常對象中的堆棧跟蹤信息。 exception.message和exception.stack。更多信息可以在這裏找到:http://www.ozkary.com/2016/04/angularjs-log-client-errors-to-server.html – ozkary
在這裏看到一個工作stacktrace到家解決方案➝http:/ /www.bennadel.com/blog/2542-logging-client-side-errors-with-angularjs-and-stacktrace-js.htm –