2016-03-09 37 views
14

Używamy serwera Django i używamy Sentry do przechwytywania wyjątków. Kiedy skonfigurować Sentry dodamy RAVEN_CONFIG nasze różne settings.py pliki:Jak skonfigurować klienta Kruka Sentry w środowisku programistycznym, aby nie wysyłał wyjątków i nadal działa?

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

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

Czytamy here, że możemy po prostu użyć pusty ciąg DSN nieruchomości. Choć kiedy prowadzimy python manage.py raven test jak przedstawiono here otrzymujemy:

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

Najlepszym rozwiązaniem byłoby, że możemy zawsze użyć klienta Raven i plik ustawień byłoby określić, czy wyjątki są wysyłane lub nie.

Kolejnym wymaganiem jest to, że chcielibyśmy użyć modułu Client i przechwytywać wyjątki. Z tego we have to set niektóre DSN wartość:

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

Więc nie wyznaczając wartość DSN nie jest możliwe

Odpowiedz

7

Dokumentacja nie powiedzieć ty masz ustawić wartość DSN, jest tylko przykład , jak ustawić.

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. 

Ważne jest, aby pamiętać, że należy przekazać None (lub w ogóle nic) jako DSN parametru, a nie pusty ciąg znaków, w przeciwnym razie podnosi InvalidDsn: Unsupported Sentry DSN scheme.

Ponadto, jeśli ci się nie podoba, że ​​Raven is not configured (logging is disabled)... w dziennikach, można wyciszyć go tak:

>>> import logging 
>>> logging.getLogger('raven').setLevel(logging.WARNING) 
11

Czytamy tutaj, że możemy po prostu użyć pustego właściwość ciąg DSN.

Nie powinno być ustawienie DSN na pusty ciąg znaków, ale zamiast w konfiguracji ustawień rozwoju nie określił DSN ustawienia w pierwszej kolejności:

RAVEN_CONFIG = {} 
+0

editted kwestia do wyjaśnienia, dlaczego nie jest to możliwe. TL; DR - chcielibyśmy użyć modułu klienta python kruka, który wymaga DSN podczas inicjalizacji –