Nous exécutons un serveur Django et utilisons Sentry pour capturer les exceptions. Lorsque nous configurons Sentry, nous ajoutons RAVEN_CONFIG
nos différents settings.py
des dossiers:
INSTALLED_APPS = (
'raven.contrib.Django.raven_compat'
)
RAVEN_CONFIG = {
'dsn': 'https://*****@app.getsentry.com/PORT_NUMBER',
}
Nous lisons ici que nous pouvons simplement utiliser une chaîne vide DSN
propriété. Bien que lorsque nous exécutons python manage.py raven test
comme illustré ici nous obtenons:
raven.exceptions.InvalidDsn: Unsupported Sentry DSN scheme: ()
La meilleure solution serait que nous pourrions toujours utiliser un client Raven et le fichier de paramètres définirait si des exceptions sont envoyées ou non.
Une autre exigence est que nous aimerions utiliser le module Client
et capturer les exceptions. Pour cela nous devons définir une valeur DSN
:
from raven import Client
client = Client('https://<key>:<secret>@app.getsentry.com/<project>')
Il n'est donc pas possible de définir une valeur DSN
La documentation n'a pas dit que vous avez pour définir la valeur DSN
, il y a juste un exemple comment pour la définir.
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.
Il est important de noter que vous devez passer None
(ou rien du tout) en tant que paramètre DSN
et non une chaîne vide, sinon cela soulève InvalidDsn: Unsupported Sentry DSN scheme
.
De plus, si vous n'aimez pas cette Raven is not configured (logging is disabled)...
dans vos journaux, vous pouvez la désactiver comme ceci:
>>> import logging
>>> logging.getLogger('raven').setLevel(logging.WARNING)
Nous lisons ici que nous pouvons simplement utiliser une propriété DSN de chaîne vide.
Vous ne devez pas définir DSN
sur une chaîne vide, mais plutôt dans la configuration de vos paramètres de développement ne spécifiez pas le paramètre DSN
en premier lieu:
RAVEN_CONFIG = {}