web-dev-qa-db-ja.com

開発環境でSentry ravenクライアントを構成して、例外を送信せずに動作するようにするにはどうすればよいですか?

Djangoサーバーを実行し、Sentryを使用して例外をキャプチャします。Sentryを構成するとき、RAVEN_CONFIG私たちの異なるsettings.pyファイル:

INSTALLED_APPS = (
    'raven.contrib.Django.raven_compat'
)

RAVEN_CONFIG = {
    'dsn': 'https://*****@app.getsentry.com/PORT_NUMBER',
}

here と読むと、空の文字列DSNプロパティを使用することができます。ただし、python manage.py raven test図のように ここ が得られます:

raven.exceptions.InvalidDsn: Unsupported Sentry DSN scheme:  ()

最善の解決策は、Ravenクライアントを常に使用でき、設定ファイルが例外を送信するかどうかを定義することです。

もう1つの要件は、Clientモジュールを使用して例外をキャプチャすることです。このために 設定する必要があります some DSN値:

from raven import Client
client = Client('https://<key>:<secret>@app.getsentry.com/<project>')

したがって、DSN値を設定しないことはできません。

20
Agam Rafaeli

ドキュメンテーションは、haveを設定してDSNの値を設定しているとは言いませんでした。設定例はhowだけです。

_In [1]: from raven import Client

In [2]: client = Client()
Raven is not configured (logging is disabled). Please see the documentation for more information.

In [3]: client.captureMessage('hello')  # it's a noop - no error, no capture.
_

空の文字列ではなく、NoneパラメーターとしてDSN(またはまったく何も)を渡す必要があることに注意してください。そうでない場合は、_InvalidDsn: Unsupported Sentry DSN scheme_が発生します。

また、ログでそのRaven is not configured (logging is disabled)...が気に入らない場合は、次のようにミュートできます。

_>>> import logging
>>> logging.getLogger('raven').setLevel(logging.WARNING)
_
9
Palasaty

ここでは、空の文字列DSNプロパティのみを使用できることを読みます。

DSNを空の文字列に設定するのではなく、開発設定の構成で最初にDSN設定を指定しないでくださいに設定する必要があります。

RAVEN_CONFIG = {}
19
alecxe