我正在使用 python-raven 自动捕获我的 django 项目中的所有 500 个,并且效果很好。我还转发了一些我处理的异常,并为它们附加了一个特殊的标签,以便能够将它们过滤掉。问题是我无法过滤缺少特定标签的邮件,因此我想为所有邮件设置默认标签,但无法使其正常工作。
我尝试了以下方法,但它被忽略了。
RAVEN_CONFIG = {
'dsn': 'udp://x:y@z:q/w',
'tags': {'testtag': 'value'},
}
有谁知道如何向 Sentry 发送默认标签?
最佳答案
以下在设置模块中对我有用。
它将环境变量 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
方法。
关于python - Django Sentry 默认标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19585865/