2012-05-30 5 views
7

i Wache zu installieren geschafft verwenden erfolgreich, und ich kann den Posten Schnittstelle Webservice auf localhost und tun einWie Wache/Rabe in django Ansichten

raven test http://jsifslkdjfklsdfjklsdjfklMYCODE 

Werke, die Tests zeigt sich in der Schnittstelle sehen.

Das Problem ist, ich kann keine Beispiele oder Dokumentationen finden, was ich genau auf meine Ansichten und meine Einstellungen setzen sollte.

Ich weiß, dass ich zu meinem INSTALLED_APPS hinzuzufügen haben

'Wache', 'raven.contrib.django',

Und ich fügte auch

SENTRY_DNS = 'http://jsifslkdjfklsdfjklsdjfklMYCODE' 

Diese nächsten zwei Zeilen erscheinen in der Dokumentation aber es sagt nicht, wohin sie gehen

from raven.contrib.django.models import client 
client.captureException() 

ich tri ed in settings.py, aber ich kann immer noch nicht meine Ansichten zu Protokollieren. ich auch diese zusätzliche

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'root': { 
     'level': 'WARNING', 
     'handlers': ['sentry'], 
    }, 
    'formatters': { 
     'verbose': { 
      'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
     }, 
    }, 
    'handlers': { 
     'sentry': { 
      'level': 'ERROR', 
      'class': 'raven.contrib.django.handlers.SentryHandler', 
     }, 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'verbose' 
     } 
    }, 
    'loggers': { 
     'django.db.backends': { 
      'level': 'ERROR', 
      'handlers': ['console'], 
      'propagate': False, 
     }, 
     'raven': { 
      'level': 'DEBUG', 
      'handlers': ['console'], 
      'propagate': False, 
     }, 
     'sentry.errors': { 
      'level': 'DEBUG', 
      'handlers': ['console'], 
      'propagate': False, 
     }, 
    }, 
} 

Und in meinen Ansichten dieses i hinzugefügt:

import logging 
logger = logging.getLogger() 

def home(request,template_name): 
    logger.error('There was some crazy error lol', exc_info=True, extra={'request': request, }) 
    return render_to_response(template_name,context, context_instance=RequestContext(request)) 

ich keinen anderen Code haben Anmeldung auseinander Zusammenhang von dem, was Sie hier sehen, Was bin ich?

Antwort

1

Ich hatte diese monstruosity auf meinem settings.py zu verwenden:

import logging 
# from raven.contrib.django.handlers import SentryHandler 
from raven.handlers.logging import SentryHandler 

logging.getLogger().setLevel(logging.INFO) 
logger = logging.getLogger()# ensure we havent already registered the handler 
handler = SentryHandler('http://13d06dad246d4fe6a180ef9b15151a13:[email protected]/1') 
logger.addHandler(handler) 
# Add StreamHandler to sentry's default so you can catch missed exceptions 
logger = logging.getLogger('sentry.errors') 
logger.propagate = False 
logger.addHandler(logging.StreamHandler()) 


from raven.conf import setup_logging 
setup_logging(handler) 

Und in meinen Ansichten kann ich eine einfache

import logging 
logger = logging.getLogger(__name__) 
def home(request,context={},template_name=None): 
    logger.info(str(request), exc_info=True) 
    return render_to_response(template_name,context, context_instance=RequestContext(request)) 

ich viele Einstellungen ausprobiert verwenden.

7

Ihr 'Rabe' Logger benutzt nicht den Sentry Handler, sondern schreibt nur auf 'Konsole'. Hatte das gleiche Problem. Der Dokumentation für Rabe/Sentry fehlt ein guter Schreiber.

Änderung Ihres Rabe Logger:

'raven': { 
      'level': 'DEBUG', 
      'handlers': ['console', 'sentry'], 
      'propagate': False, 
     }, 

und sicher, dass Sie als Logger zu verwenden machen:

logger = logging.getLogger('raven') 
+7

Der Rabe 'Logger zum Raben Paket bezieht, und ich würde vermuten, dass es Stellen Sie dort, dass Raven interne Fehler nicht zu Raven zurückgeschickt werden, was zu einer Endlosschleife führt. Sie sollten Ihren eigenen Logger 'myapp' erstellen, der einen eigenen Eintrag in settings.py LOGGING hat. – joerick

Verwandte Themen