JavaScriptエラーをグローバルに処理し、クライアントブラウザーからサーバーに送信する経験がある人はいるかと思いました。
私のポイントは非常に明確だと思います。クライアント側で発生するすべての例外、エラー、コンパイルエラーなどを知り、それらをサーバーに送信して報告したいと思います。
主にMooToolsとhead.js
(JS側)とDjangoをサーバー側で使用しています。
私は最近、テストで 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アナリティクスを使用している場合は、次の操作を実行できます。
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 /ブラウザバージョンのレポートに列を追加します。また、 http://jslogger.com サービスはそれを支援できます。
Javascriptエラーとイベントをクラウドに記録する
from http://jslogger.com/features :
これからは、サイトのユーザーエクスペリエンスを損なうすべてのエラーをスパイできます。すべてのJavascriptエラーがキャッチされ、後でデバッグできるようになります。
免責事項:サービス/会社と提携していません。
試すことができます Atatus -これは、最新のWebアプリ向けのReal User Monitoring(RUM)に加えて、新しいJavaScriptエラー追跡サービスです。
エラーをキャプチャするだけでなく、エラーをトリガーしたユーザーイベントもキャプチャします。これにより、最後にエラーを再現する手順が提供されます。
エラーのキャプチャに加えて、ページの読み込み時間もキャプチャし、さまざまな視点(ジオ、ブラウザ、ページドリルダウン、ページヒストグラム、Ajaxモニタリング、トランザクションモニタリング)で表示します。
利用可能なドキュメント: https://www.atatus.com/docs
免責事項:私はAtatusのWeb開発者です。
代わりにサードパーティのサービスを使用しようとしないでください。
エラーハンドラーは、以下のシナリオをキャッチできます。
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
}
})
})