如何在开发环境中配置Sentry raven客户端以不发送异常并仍然有效?

时间:2016-03-09 10:21:16

标签: python django 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属性。虽然我们按照here的描述运行python manage.py raven test,但我们得到了:

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

最好的解决方案是我们可以始终使用Raven客户端,设置文件将定义是否发送异常。

另一个要求是我们希望使用Client模块并捕获异常。对于此we have to set某些DSN值:

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

因此,无法设置DSN

2 个答案:

答案 0 :(得分:19)

  

我们在这里读到我们可以使用空字符串DSN属性。

您不应该将DSN设置为空字符串,而是在开发设置中配置首先不要指定DSN设置

RAVEN_CONFIG = {}

答案 1 :(得分:8)

文档没有说你设置DSN值,只有一个例子如何来设置它。

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)