Как настроить клиент Raven Sentry в среде разработки, чтобы не отправлять исключения и работать?
Мы запускаем сервер 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
Ответы
Ответ 1
В документации не указано, что вам нужно установить значение 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 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)
Ответ 2
Мы читаем здесь, что мы можем просто использовать свойство пустой строки DSN.
Вы не должны устанавливать DSN
в пустую строку, но вместо этого в настройках параметров разработки не указывайте параметр DSN
в первую очередь:
RAVEN_CONFIG = {}