3

私は python-raven を使用して、django プロジェクトで 500 個すべてを自動的にキャプチャしていますが、うまく機能します。また、私が処理するいくつかの例外を転送し、フィルターで除外できるように特別なタグを追加します。問題は、特定のタグが欠落しているメッセージをフィルタリングできないため、すべてのメッセージにデフォルトのタグを設定したいのですが、機能しないことです。

次のことを試しましたが、無視されました。

RAVEN_CONFIG = {
    'dsn': 'udp://x:y@z:q/w',
    'tags': {'testtag': 'value'},
}

デフォルトのタグをセントリーに送信する方法を知っている人はいますか?

4

3 に答える 3

8

以下は、設定モジュールで機能します。DJANGO_ENVDIR送信されるすべてのメッセージに環境変数を追加します。

from raven.contrib.django.client import DjangoClient as RavenDjangoClient
class SentryDjangoClient(RavenDjangoClient):
    def build_msg(self, *args, **kwargs):
        data = super(RavenDjangoClient, self).build_msg(*args, **kwargs)
        data['tags']['ENVDIR'] = os.environ.get('DJANGO_ENVDIR', 'unset')
        return data

if get_env_var('SENTRY_DSN', False):
    RAVEN_CONFIG = {
        'dsn': get_env_var('SENTRY_DSN'),
        # NOTE: timeout set via DSN
    }
    SENTRY_CLIENT = 'project.settings.base.SentryDjangoClient'

メソッドを拡張する SentryDjangoClient クラスを配置する場所に応じて、SENTRY_CLIENT 設定を調整する必要がありますbuild_msg

于 2014-01-20T19:45:08.937 に答える
-1

もう少し調べてみると、これはまったく可能な ATM ではないようです。

于 2013-11-03T09:59:06.530 に答える