Sentry-javascript: wrapConsoleMethod()との取引は何ですか?

作成日 2016年05月17日  ·  15コメント  ·  ソース: getsentry/sentry-javascript

最近、レイヴンがすべてのコンソールメソッドをラップしていることに気づきましたが、その理由を説明するドキュメントがありません。 またはそれがどのように役立つ可能性がありますか? 誰かがこれにまだ遭遇し、その使用に関するいくつかのドキュメントを私に指摘することができますか?

私が遭遇した問題は、console.log()を使用して単純なデバッグを実行できなくなったことです..ソースがraven.jsになり、コードのどこから送信されているかを追跡できなくなりますか?

もともとドキュメントリポジトリに投稿され、その後閉じられました

最も参考になるコメント

3.5.0以降、コンソールブレッドクラムの自動収集を無効にできます。

Raven.config('your dsn', {
  autoBreadcrumbs: {
    console: false
  }
});

または、自動ブレッドクラム収集を完全に無効にすることができます。

Raven.config('your dsn', { autoBreadcrumbs: false });

これについては、ドキュメントをご覧ください。

全てのコメント15件

@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宣言に苦労しています。 提出を歓迎します。

このページは役に立ちましたか?
0 / 5 - 0 評価