2012-03-21 8 views
8

Ahora que django-sentry se ha convertido en un servidor independiente (y es fantástico), intento portar mis aplicaciones para usarlo.centinela, cuervo y apio django

He configurado un servidor independiente configurado una aplicación django to log using django 1.3's logging dictionary conf as per the raven docs. Parece que no puedo obtener ninguna tarea de apio para iniciar sesión en el servidor centinela (sin embargo, se imprimen en la consola).

¿No estoy seguro de lo que debería estar haciendo? He incluido raven.contrib.django.celery en mi `INSTALLED_APPS '.

Las excepciones no detectadas están siendo enviados a centinela, al igual que el registro de mensajes personalizados a través de:

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

intento de añadir * * exc_info a info() como se proporciona en los documentos. Además, verifique que el apio use la misma configuración.py. – ilvar

+0

Solo tiene que usar 'raven.contrib.django.celery' en su INSTALLED_APPS si necesita cargar de forma asíncrona – diegueus9

Respuesta

10

Es necesario añadir lo siguiente:

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

Para su loggers en la variable LOGGING en la configuración.

algo como:

# 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

Mire el nivel, tal vez necesite DEBUG en lugar de WARNING – diegueus9

+0

Esto no funciona, desafortunadamente. No entiendo por qué el registrador 'cuervo' está registrando en el controlador' console' y no en 'centinela'. ¿Esto es porque hay un registrador de "raíz" que recoge todo? –

+0

En mi fragmento, le digo a Raven explícitamente que log to console, el registrador de raíz le dice por defecto que envíe registros a centinela, creo que el problema tiene algo con las versiones, lo pruebo con apio 2.4.6, django-apio 2.4 .2, y rave 1.4.3 pero lo vuelvo a probar con las últimas versiones y los registros de taks no aparecen en centinela – diegueus9

Cuestiones relacionadas