2012-05-30 13 views
7

udało mi się pomyślnie zainstalować wartownika i widzę interfejsu usługa wartownika na localhost i robiJak korzystać sentry/kruk w widokach django

raven test http://jsifslkdjfklsdfjklsdjfklMYCODE 

prace, badania pojawia się w interfejsie.

Problem polega na tym, że nie mogę znaleźć żadnych przykładów ani dokumentacji na temat tego, co dokładnie należy uwzględnić w moich poglądach i moich ustawieniach.

wiem, muszę dodać do mojego INSTALLED_APPS

'wartownik' 'raven.contrib.django',

I dodałem również

SENTRY_DNS = 'http://jsifslkdjfklsdfjklsdjfklMYCODE' 

pojawiają Następny dwie linie w dokumentach ale to doesnt mówią, gdzie oni idą

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

I tri ed w settings.py, ale nadal nie mogę uzyskać moich widoków, aby cokolwiek rejestrować. Dodałem też to

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, 
     }, 
    }, 
} 

I w moich poglądów i dodanych w tym:

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

nie mam innego kodu związanego zalogowaniu oprócz tego, co tu widzisz, co mam brakuje?

Odpowiedz

1

musiałem użyć tego monstruosity na moim settings.py:

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) 

I w moich poglądów mogę użyć prostego

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

Próbowałem wielu ustawień.

7

Twój "kruk" nie używa w rzeczywistości kontrolera wartownika, a jedynie pisze do "konsoli". Miał ten sam problem. W dokumentacji kruka/wartownika brakuje dobrego pisarza.

zmiana Twój kruk rejestrator do:

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

i upewnij się go używać jako Rejestrator:

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

do „kruk” rejestrator odnosi się do pakietu kruk, a ja przypuszczać, że jest to umieścić tam, aby kruche wewnętrzne błędy nie zostały wysłane z powrotem do kruka, powodując nieskończoną pętlę. Powinieneś stworzyć swój własny program rejestrujący "myapp", który ma własny wpis w usłudze settings.py LOGOWANIE. – joerick