2012-03-21 3 views
8

Теперь, когда django-sentry стал автономным сервером (и это фантастика), я пытаюсь передать свои приложения, чтобы использовать его.часовой, ворон и сельдерей django

Я установил автономный сервер, настроенный для приложения django to log using django 1.3's logging dictionary conf as per the raven docs. Кажется, я не могу задавать какие-либо задачи сельдерея для регистрации на часовом сервере (они, однако, распечатываются на консоль).

Я не совсем уверен, что я должен делать? Я включил raven.contrib.django.celery в мой `INSTALLED_APPS '.

Неперехваченные исключения отправляются в караул, как и пользовательские сообщения каротаж с помощью:

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

попробуйте добавить * exc_info * к информации(), как указано в документах. Кроме того, убедитесь, что сельдерей использует те же параметры settings.py. – ilvar

+0

Вам нужно использовать только «raven.contrib.django.celery» в вашем INSTALLED_APPS, если вам нужно асинхронно looging – diegueus9

ответ

10

Вам нужно добавить следующее:

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

Чтобы ваш loggers в в настройках переменной LOGGING.

что-то вроде:

# 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

Посмотрите на уровень, возможно, вам нужно DEBUG вместо WARNING – diegueus9

+0

Это все еще не работает, к сожалению. Я не понимаю, почему регистратор 'raven' регистрируется в обработчике' console', а не 'sentry'. Это потому, что есть «корневой» журнал, который поднимает все? –

+0

В моем фрагменте я рассказываю raven о том, что log to console, корневой регистратор сообщает по умолчанию отправлять журналы в часовой, я думаю, что проблема имеет что-то с версиями, я тестирую это с помощью celery 2.4.6, django-celery 2.4 .2 и rave 1.4.3, но я тестирую его снова с последними версиями, и журналы taks не отображаются в часах – diegueus9

Смежные вопросы