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
Documentation didn't say you have to set DSN
value, there's just an example how to set it.
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.
It's important to note that you should pass None
(or nothing at all) as DSN
parameter and not empty string, otherwise it raises InvalidDsn: Unsupported Sentry DSN scheme
.
Also, if you don't like that Raven is not configured (logging is disabled)...
in your logs, you can mute it like so:
>>> import logging
>>> logging.getLogger('raven').setLevel(logging.WARNING)