2013-10-25 104 views
2

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

我试过以下,但它只是被忽略。

RAVEN_CONFIG = { 
    'dsn': 'udp://x:[email protected]:q/w', 
    'tags': {'testtag': 'value'}, 
} 

有谁知道如何发送一个默认标记哨兵?

回答

0

看了一眼之后,看起来好像这根本不可能是ATM。

0

在记录消息之前,您可以为记录器分配一个不同的名称。这将允许您通过Sentry服务器中的“记录器”进行过滤。

7

在设置模块中,以下方法适用于我。 它将环境变量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' 

您需要调整SENTRY_CLIENT设置,根据你放置SentryDjangoClient类,它扩展了build_msg方法。

+0

如果您一直关注控制台,您可能已经看到'发送长度消息'消失。不要担心,只要确保您的根记录器(或任何“SentryDjangoClient”存在的地方)日志级别设置为“DEBUG”。 – Kurt