2012-03-21 19 views
8

Teraz, gdy django-sentry stał się samodzielnym serwerem (i jest fantastyczny) staram się przenosić moje aplikacje, aby z niego korzystać.Wartownik, kruk i django seler.

Skonfigurowałem samodzielny serwer skonfigurowany jako aplikacja django to log using django 1.3's logging dictionary conf as per the raven docs. Nie wydaje mi się, aby zadania selera były rejestrowane na serwerze wartownika (mimo to są drukowane na konsoli).

Nie jestem do końca pewien, co powinienem zrobić? Zawarłem raven.contrib.django.celery w mojej `INSTALLED_APPS '.

Uncaught wyjątki są wysyłane do Sentry, podobnie jak zwyczaj wiadomość rejestrowanie poprzez:

import logging 
logger = logging.getLogger(__name__) 
... 
logger.info("Logged Message")  
+0

spróbuj dodać * exc_info * do informacji() zgodnie z dokumentami. Sprawdź również, czy seler używa tego samego ustawienia settings.py. – ilvar

+0

Musisz tylko użyć "raven.contrib.django.celery" w INSTALLED_APPS, jeśli potrzebujesz asynchronicznego ominięcia – diegueus9

Odpowiedz

10

Trzeba dodać to:

'celery': { 
     'level': 'WARNING', 
     'handlers': ['sentry'], 
     'propagate': False, 
    }, 

do swojej loggers w zmiennej LOGGING w ustawieniach.

coś takiego:

# the site admins on every HTTP 500 error. 
# See http://docs.djangoproject.com/en/dev/topics/logging for 
# more details on how to customize your logging configuration. 
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': 'DEBUG', 
      '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, 
     }, 
     'celery': { 
      'level': 'WARNING', 
      'handlers': ['sentry'], 
      'propagate': False, 
     }, 
    }, 
} 
+0

Sprawdź poziom, może potrzebujesz DEBUG zamiast OSTRZEŻENIA – diegueus9

+0

To nadal nie działa niestety. Nie rozumiem, dlaczego rejestrator 'kruk' loguje się do' konsoli 'handler, a nie' sentry'. Czy to dlatego, że istnieje "root" logger, który zbiera wszystko? –

+0

W moim fragmencie mówię do kruka jawnego tego logu do konsoli, root logger domyślnie wysyła logi do sentry, myślę, że problem ma cokolwiek z wersjami, testuję to z selerem 2.4.6, django-selerem 2.4 .2, i rave 1.4.3, ale testuję go ponownie z ostatnimi wersjami, a logi taksów nie pojawiają się w Sentry – diegueus9