既然django-sentry
已经成为一个独立的服务器(并且太棒了)我试图移植我的应用程序来使用它。
我已经设置了一个配置django应用程序to log using django 1.3's logging dictionary conf as per the raven docs的独立服务器。我似乎无法将任何芹菜任务记录到哨兵服务器(尽管他们确实打印到了控制台)。
我不确定自己应该做什么?我在{INSTALLED_APPS'中添加了raven.contrib.django.celery
。
正在向哨兵发送未捕获的异常,以及通过以下方式发送自定义日志消息:
import logging
logger = logging.getLogger(__name__)
...
logger.info("Logged Message")
答案 0 :(得分: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,
},
},
}
答案 1 :(得分:4)
自Raven 5+以来,您可能需要为Django项目添加设置,如Sentry logging in Django/Celery stopped working
中所述CELERYD_HIJACK_ROOT_LOGGER = False