フォーム付きのページが多数含まれている私のプロジェクト。これは銀行CRMシステムのバックエンドであるため、作業プロセス中のエラーはすべてキャプチャして調査する必要があります。サーバー側ではJava例外システムが強化されていますが、クライアント側でエラーが発生した場合、JavaScriptで取得できる情報はIEのjs-errorウィンドウ、またはスクリーンショットのみです。上級ユーザーが作成したページ。
JavaScriptコードには、Jqueryを利用したUI拡張機能と、ハードコードされたインラインイベントハンドラーおよび関数の両方が含まれています。
だから私は、あらゆる種類のjs-errorsをキャプチャするためのアプローチが使用できるかどうか尋ねていますか?追加のライブラリや、MozillaのFirebugやChromeのWebコンソールのようなスタックトレースを提供できるものはありますか?
window.onerror
を調べてください。エラーをキャプチャしてサーバーに報告したい場合は、AJAXリクエストを試してください。
window.onerror = function(errorMessage, errorUrl, errorLine) {
jQuery.ajax({
type: 'POST',
url: 'jserror.jsf',
data: {
msg: errorMessage,
url: errorUrl,
line: errorLine
},
success: function() {
if (console && console.log) {
console.log('JS error report successful.');
}
},
error: function() {
if (console && console.error) {
console.error('JS error report submission failed!');
}
}
});
// Prevent firing of default error handler.
return true;
}
免責事項:私はCEOであり、 Sentry の作成者です。これは、JavaScriptを含む多くの言語のクラッシュレポートを実行するオープンソースで有料のサービスです。
フロントエンドの例外をキャプチャするのはかなり難しい場合があります。テクノロジーは改善されましたが(ブラウザーJSエンジン)、まだ多くの制限があります。
window.onerror
に依存することはできません(主にブラウザーがこれまでに悪い情報をここに提供するためです)。 raven.js クライアント(TraceKitに基づく)で実行することは、try/catchステートメントでそれらをラップするためにいくつかの関数にパッチを適用することです。たとえば、window.setTimeout
などです。これにより、ほとんどのブラウザーで完全なスタックトレースを生成するエラーハンドラーをインストールできます。サーバー上で知っておくべきこと:
ウェブサイトで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 /ブラウザバージョンのレポートに列を追加します。http://exceptionhub.com トリックする必要があります。 http://errorception.com/ デバッグに関する情報はそれほど多くありませんが、見栄えも良いようです。
proxinoは彼らが何をしているのかを知らないようで、前回チェックしたときにonloggerイベントをログに記録するためにロガーコードに完全なjQueryを組み込んでいます。 JavaScriptエラーをログに記録するクライアント側JavaScriptをほとんど把握していないサービスは信用できません。
JsLog.me サービスの使用をお勧めします
エラーとスタックトレースに加えて、コンソール出力全体をキャプチャできます。プロジェクトで使用します。コンソールログ全体をログに記録することで、QAチームが問題を再現する方法を記録できます。また、Chrome consoleのような大きなJSONオブジェクトでもうまく機能し、検索機能があります。
Atatus はJavaScriptエラーをキャプチャし、エラーの前のユーザーアクションもキャプチャします。これは、エラーの理解に役立ちます。 Atatusは、エラーだけでなくそのパフォーマンスもフロントエンドの監視に役立ちます(リアルユーザーモニタリング)
免責事項:私はAtatusのWeb開発者です。