How do you configure a Sentry raven client in a development environment to not send exceptions and still work?

Agam Rafaeli picture Agam Rafaeli · Mar 9, 2016 · Viewed 14.5k times · Source

We are running a Django server and using Sentry to capture exceptions. When we configure Sentry we add RAVEN_CONFIG our different settings.py files:

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

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

We read here that we can just use an empty string DSN property. Though when we run python manage.py raven test as depicted here we get:

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

The best solution would be that we could always use a Raven client and the settings file would define whether exceptions are sent or not.

Another requirement is that we would like to use the Client module and capture exceptions. For this we have to set some DSN value:

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

So not setting a DSN value isn't possible

Answer

alecxe picture alecxe · Mar 12, 2016

We read here that we can just use an empty string DSN property.

You should not be setting DSN to an empty string, but instead in your development settings configuration don't specify the DSN setting in the first place:

RAVEN_CONFIG = {}