2012-03-21 14 views
8

Ora che django-sentry è diventato un server autonomo (ed è fantastico) sto provando a trasferire le mie app per usarlo.sentry, raven e django sedano

Ho configurato un server standalone configurato un'applicazione django to log using django 1.3's logging dictionary conf as per the raven docs. Non riesco a ottenere alcun compito di sedani per accedere al server di sentinella (vengono comunque stampati sulla console).

Non sono proprio sicuro di cosa dovrei fare? Ho incluso raven.contrib.django.celery nel mio `INSTALLED_APPS '.

eccezioni non rilevate vengono inviati alla sentinella, come lo sono il messaggio personalizzato di registrazione via:

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

prova ad aggiungere * exc_info * a info() come previsto in doc. Inoltre, verifica che il sedano utilizzi le stesse impostazioni.py. – ilvar

+0

Devi solo usare 'raven.contrib.django.celery' nel tuo INSTALLED_APPS se hai bisogno di usare looging in modo asincrono – diegueus9

risposta

10

È necessario aggiungere questo:

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

Per il tuo loggers nella variabile LOGGING nelle impostazioni.

qualcosa di simile:

# 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

Guarda il livello, forse hai bisogno di DEBUG invece di WARNING – diegueus9

+0

Purtroppo non funziona ancora. Non capisco perché il logger 'raven' si connetta al gestore' console' e non a 'sentry'. È perché c'è un logger 'root' che raccoglie tutto? –

+0

Nel mio frammento sto dicendo al corvo esplicito che il log alla console, il logger root dice per default i registri di invio alla sentinella, penso che il problema abbia qualche cosa con le versioni, lo provo con il celenter 2.4.6, django-celery 2.4 .2, e rave 1.4.3 ma lo collaudo di nuovo con le ultime versioni ei registri di taks non appaiono nella sentinella – diegueus9

Problemi correlati