最近、レイヴンがすべてのコンソールメソッドをラップしていることに気づきましたが、その理由を説明するドキュメントがありません。 またはそれがどのように役立つ可能性がありますか? 誰かがこれにまだ遭遇し、その使用に関するいくつかのドキュメントを私に指摘することができますか?
私が遭遇した問題は、console.log()を使用して単純なデバッグを実行できなくなったことです..ソースがraven.jsになり、コードのどこから送信されているかを追跡できなくなりますか?
@grapho –コンソールステートメントが収集され、ブレッドクラムとして渡されます。
console.log
をインストルメント化した結果、devtoolsのURLがソースの元のログステートメントに移動しなくなることが、どのように苛立たしいことかわかります。 インストルメンテーションconsole.log
オプションにすることができます。 または、独自のブレッドクラムを記録するための代替APIとしてRaven.log
を導入します。
@benvinegar私はイライラしないことを約束します...開発環境でブレッドクラムまたは同等のAPIを使用できる方法がある場合..console.logの場所、方法を知りたいですか?
代わりに、ブレークポイントとデバッガーステートメントを配置することに慣れることができます。
私は実際にコンソールステートメントへのリンクを使用することはめったになく、それがなくなったことにさえ気づかなかったと思います:)私はほとんどの場合Chromeデバッガーを個人的に使用しています。
開発環境でブレッドクラムまたは同等のAPIを使用できる方法がある場合
ブレッドクラムを設定するだけの場合は、今日Raven.captureBreadcrumb
を使用できます。 APIはまだ実際には具体化されていません。 これはまだ新しい機能であり、私たちはまだいくつかのビットを解決しようとしています。
これが深刻な障害ではない場合は、この問題を少しの間開いたままにして、フィードバックが得られるかどうかを確認したいと思います。
これは大きな問題だと思います。特に、どこにも文書化されておらず、無効にできないということです。
Sentryに送信したくないconsole.logが大量にある可能性があります。
何をいつ送信するかを選択するのは開発者次第です
私が言及しなかったもう1つのことは、Ember.jsのようないくつかのJSフレームワークは、本番ビルドからconsole()メソッドを取り除く傾向があるということです。 検討のための食べ物だけ。
上記のコメントは正しくないようです、ごめんなさい。
@benvinegarチケットを開いたままにしておくことをいとわないことを感謝します、それはもう少し調査する価値があるかもしれません:)
@benvinegarこの問題は深刻な
これが私の現在の解決策です。 開発モードでは、raven.jsクライアントを初期化できないことに気づきました... raven / sentryレポートは、とにかく本番アプリのほとんどの人(私が想像する)にのみ本当に役立ちます。
そうは言っても。 developmentMode
フラグを導入することには、まだいくつかの用途があるかもしれません。これにより、メッセージとエラーが開発コンソールに渡されます(別名、「グローバル」処理の一部が無効になります)。 jsクライアントはバックグラウンドで静かなので、必要に応じて、レイヴンAPIを明示的にトリガーすることで、エラーレポートを手動で送信できます。
それについてどう思うか教えてください。 そうでなければ、私はそれについてあまり心配しません。この問題は、主にレイヴンの経験不足と、それをいつどのように使用するかによって引き起こされたからです。
Sentryに送信したくないconsole.logが大量にある可能性があります。
本当の話–これを実際に無効にしますか? 私はここで受動的攻撃的に聞こえようとはしていません。これが今深刻な問題であるかどうかを知りたいのですが、あなたはそれを無効にしたいのです。
これは大きな問題だと思います。特に、どこにも文書化されておらず、
これは、Raven.jsの変更ログに記載されています。 また、 console.log
ステートメントがログに記録されるようになったことを示すパンくずリストを発表するブログ投稿を公開しまし
また、これがRaven.js 3.0.xがメジャーバージョンのバンプであった理由であることに注意してください。これは、潜在的に重大な変更が導入されたためです。 メジャーバージョンにアップグレードする前に、変更ログを確認してください。
...無効にすることはできません。
それまでの間、Raven2.xを実行することはできます。
@benvinegarチケットを開いたままにしておくことをいとわないことを感謝します、それはもう少し調査する価値があるかもしれません:)
ソリューションに突入する前に、より多くのフィードバックを収集したいと思います。 特に3.0.xが数週間公開されて以来、私たちが得たフィードバックのほとんどは肯定的なものでした。
@benvinegarこの問題は深刻な
ええ、何よりも好奇心旺盛な気がしました。
そうは言っても。 おそらくdevelopmentMode構成フラグを導入することには、まだいくつかの用途があるかもしれません。これにより、メッセージとエラーが開発コンソールに渡されます(「グローバル」処理の一部が無効になります)。raven.jsクライアントを静かに保ちます。バックグラウンドであるため、必要に応じて、レイヴンAPIを明示的にトリガーすることで、エラーレポートを手動で送信できます。
ええ、それに関する問題は、デバッグのためにも本番環境でコンソールステートメントが必要であるという議論があることです。 むしろ構成可能にしたいだけです。 そして、そうします。 最初にフィードバックを増やしたり、影響を測定したりしたいだけです。
Anwyays、本当にここであなたの両方のコメントに感謝します。
@benvinegar :👍設定オプション—理想的には手動で(またはむしろ機能して)不要なエントリを除外できるようにします
これは、サポートトラッカーにも表示され続けます。 それを無効にするメソッドを追加する必要があると思います。
ブレッドクラム機能をオプションにしてください。コンソールメソッドのラッピングはリスクが高く、他の多くのライブラリやサードパーティのスクリプトと競合する傾向があります。
3.5.0以降、コンソールブレッドクラムの自動収集を無効にできます。
Raven.config('your dsn', {
autoBreadcrumbs: {
console: false
}
});
または、自動ブレッドクラム収集を完全に無効にすることができます。
Raven.config('your dsn', { autoBreadcrumbs: false });
これについては、ドキュメントをご覧ください。
autoBreadcrumbs
はtypescript宣言ファイルにありません。 意図的ですか?
https://github.com/getsentry/raven-js/blob/master/typescript/raven.d.ts
最近、TypeScript宣言に苦労しています。 提出を歓迎します。
最も参考になるコメント
3.5.0以降、コンソールブレッドクラムの自動収集を無効にできます。
または、自動ブレッドクラム収集を完全に無効にすることができます。
これについては、ドキュメントをご覧ください。