を使用してクライアント側の例外ログを実装しwindow.onerror
ました。現在のエラーとスタック トレースを取得し、AJAX を使用してサーバーに送信します。
window.onerror = function(message, url, line) {
var stackTrace = printStackTrace(); //get stack trace
//send message, url, line and stackTrace to the server using an ajax call
}
はprintStackTrace
、このライブラリによって提供される関数です: http://stacktracejs.com/
問題は、本番環境ではすべての JavaScript ファイルが縮小されているため、スタック トレースと行番号は実際には役に立たないことです。これは、すべてのエラーがファイルの 1 行目に報告されているためです。これは、縮小されたバージョンには 1 行のコードが含まれているため正常です。例えば:
Message: Object doesn't support property or method 'indexOf'
URL: http://[server]/[site]/content/combined/combined.635EE367354E6DF721593CAC56FECF95.min.js
Line: 1
これはソース マップを使用して改善できますか、それとも開発者ツールがアクティブな場合にのみ機能しますか?
私が望むのは、開発者ツールを有効にしていない/ソースマップを有効にしていないユーザーにエラーが発生したときに、ソースマップ (または少なくとも実際の行番号) を使用して完全なスタックトレースを取得することです。これはまったく可能ですか?