web-dev-qa-db-fra.com

Comment configurer un client Sentry Raven dans un environnement de développement pour ne pas envoyer d'exceptions et continuer à fonctionner?

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

22
Agam Rafaeli

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)
10
Palasaty

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 = {}
19
alecxe