Django 哨兵默认标签



我正在使用python-raven自动捕获我的django项目中的所有500个,效果很好。我还转发了一些我处理的异常,并用特殊标签附加它们,以便能够过滤掉它们。问题是我无法过滤缺少特定标签的消息,因此我想为所有消息设置默认标签,但无法使其正常工作。

我已经尝试了以下内容,但它只是被忽略了。

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

有谁知道如何向哨兵发送默认标签?

以下内容在设置模块中对我有用。它将环境变量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方法。

在记录消息之前,您可以为记录器指定不同的名称。这将允许您按哨兵服务器中的"记录器"进行过滤。

在仔细研究之后,这似乎根本不可能 ATM。

相关内容

  • 没有找到相关文章

最新更新