問題タブ [stacktrace.js]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - stacktrace.js を使用して「ほぼすべての関数」を安全に計測するための適切なスニペットは何ですか?
stacktrace.jsはmicro-library for getting stack traces in all web browsers
.
関数のインストルメンテーションを提供します。
安全な方法で「すべてまたはほぼすべての機能を実装する」ための最良の方法は何ですか? 基本的に、インストルメント化可能なすべての関数からのすべてのスタック トレースを「自動キャッチしてログに記録」したい (たとえば、「デバッグ モード」で)。これを行うのに適したスニペットは何ですか? インストルメント化を避けるべき関数はどれですか?
javascript - JS エラーをキャッチする最も簡単な方法
私は、JavaScript エラーをキャッチし、それを内部ログ用に独自のシステムに送信する方法についていくつかの調査を行ってきました(これにより、可能な場合は複製を試み、可能なバグを修正することができます)。これまでのところ、かなりの数の有料サービスを見つけました。
TrackJSは確かに面白そうに見えますが、毎月これ以上の出費をする余裕はありません。その後、このライブラリに出くわしました:
http://www.stacktracejs.com/#!/docs/stacktrace-js
私はそれを実行できないようです。ここに私がしようとしているものがあります:
...そして、私が返すのは次のとおりです。
TypeError: ErrorStackParser が定義されていません
var stackframes = ErrorStackParser.parse(エラー);
他の誰かが解決策を提案したり、stacktrace.jsスクリプトで私が間違っていることを確認したりできますか?
更新:以下の助けを借りて、少なくとも今何かをすることができました. 複数の js ライブラリが必要であることがわかりました。
- https://github.com/stacktracejs/stacktrace.js
- https://github.com/stacktracejs/error-stack-parser
- https://github.com/stacktracejs/stack-generator
しかし、私はまだそれを実行することができないようです。
コンソールにエラーが記録されるようになりましたが、行番号とエラー メッセージはあまり役に立ちません :( 例:
行 84 は呼び出し元関数です。
StackTrace.get().then(callback).catch(errback);
...そして 5 行目は、stacktrace.min.js の縮小されたインクルードです (メインの JS ファイル内)。
どうすれば有益な情報を得ることができるのか、私は少し困惑しています :/
更新 2 : わかりました、私は近づいています!
これにより、alert()メッセージが出力されます。
{匿名}()@ https://cdn.steampunkjunkies.net/2014/js/scripts-all11.js:73:1
ただし、必要な情報はそれだけではありません。明らかに、素敵なメッセージが必要です(つまりvar x cannot be undefined
)
誰でもアイデアはありますか?
それらを(行番号と列番号を使用して)配列に保存しようとしましたが、すべてのブラウザーで機能するわけではありません(皮肉なことに、デバッグコードは致命的なエラーを引き起こしました:))
更新 3
わかりました、まあ、私たちは近づいています:)
92行目はこれです}:
...そのため、この関数が呼び出されたことがわかりますが、実際のエラーの行番号はありません。
何か案は?JS のエラーをキャッチしてスクリプトに報告するだけで、どれほど複雑なのか信じられません。過去 20 年以上にわたるインターネットの発展に伴い、私たち開発者のために、より準拠したものが開発されていたと思われるでしょう :/
webpack - Webpack umd は、stacktrace-js の機能を壊しているようです
私たちは素晴らしい logary-js (私のプロジェクト) で stacktrace-js を使用しようとしていますが、webpack を通過した後は、もう機能しないようです。
webpack の構成は次のとおりですhttps://github.com/logary/logary-js/blob/c7fdec752e5ce33843d458e9e6c590657005c60a/webpack.config.js
私が気になる出力は次のとおりです(npm run build
):
このブランチでは、UglifyJs を無効にしようとしましたが、役に立ちませんでした。
npm run test
この出力が得られます(抜粋):
したがって、dev での webpack-mocha の統合は非常にうまく機能しているように見えます。ただし、リリース後に他の JS の logary を使用すると、stacktrace-js から次の出力が得られます。
これらの単体テストを実行する必要がある場合 (mocha を実行するときは実行されますが、ブラウザーで実行するときは実行されません):
javascript - stacktracejs を requirejs amd モジュールで動作させる方法
ライブラリ: 私が使用しているライブラリレポ
stacktrace js libraryから StackTrace にロードできないという requirejs の要点を理解しているとは思いません。
下にstacktrace-with-promises-and-json-polyfills.min.js
保存しましjs/lib/stacktrace.js
た(短いバージョンの名前に変更しました)。
私の設定では、追加しようとしました:
うまくいかなかったので削除しましたが、別のjsモジュールからライブラリを取得できます:
これをエラーで出力するのは本当に奇妙です:
オブジェクトをログに記録できますが、すべての機能が失われます。私もオリジナルでやってみましたstacktrace.min.js
。場合によってStackTrace
は未定義です。
振り返ってみると、requirejs 構成を記述して、stacktrace js ライブラリをモジュールにする方法がわかりません。助けてください。
logstash - Logstash grok-filter の Java ログの原因の解析を取得するには?
以下は私の設定ファイルです:
私のログ:
キャプチャする必要があるのは、「Caused by」から改行までの行全体です。私の問題は、最後の1つだけをキャプチャすることです(原因による)
angular - ErrorHandler error.stack の Angular 2+ パス
エラーを報告するために stacktrace.js を使用しようとしていますが、スタック トレースのパスは " ng:///FormModule/MyComponent.ngfactory.js "を参照しています。
このパスを読み込めないため、Stacktrace.js はバンドル ファイルとそれに対応するソース マップを見つけることができません。
WebPack、Stacktrace.js を使用してソース マップを動作させている人はいますか、それともこの問題を修正する方法を知っている人はいますか?