25

我们正在运行一个 Django 服务器并使用 Sentry 来捕获异常。当我们配置 Sentry 时,我们添加RAVEN_CONFIG了不同的settings.py文件:

INSTALLED_APPS = (
    'raven.contrib.django.raven_compat'
)

RAVEN_CONFIG = {
    'dsn': 'https://*****@app.getsentry.com/PORT_NUMBER',
}

我们在这里读到我们可以只使用一个空字符串DSN属性。虽然当我们按照此处python manage.py raven test描述的方式运行时,我们得到:

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

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

另一个要求是我们想使用该Client模块并捕获异常。为此,我们必须设置一些DSN值:

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

所以不设置DSN值是不可能的

4

2 回答 2

19

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

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

RAVEN_CONFIG = {}
于 2016-03-12T15:06:13.267 回答
10

文档没有说你必须设置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)
于 2016-03-28T11:22:45.817 回答