现在django-sentry
已经成为一个独立的服务器(非常棒),我正试图将我的应用程序移植到它上使用。
我已经建立了一个独立的服务器,配置了一个django应用程序,根据raven文档使用django 1.3的日志字典conf进行日志记录。我似乎无法将任何芹菜任务登录到哨兵服务器(不过它们确实会打印到控制台)。
我真的不确定我应该做什么?我已将raven.contrib.django.celery
包含在"INSTALLED_APPS"中。
未捕获的异常被发送到哨兵,自定义日志消息也通过:发送
import logging
logger = logging.getLogger(__name__)
...
logger.info("Logged Message")
您需要添加以下内容:
'celery': {
'level': 'WARNING',
'handlers': ['sentry'],
'propagate': False,
},
到您设置中的变量LOGGING
中的loggers
。
类似于:
# 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,
},
},
}
由于Raven 5+,您可能需要在Django项目中添加一个设置,如Django/Celery中的Sentry日志中所述
CELERYD_HIJACK_ROOT_LOGGER=错误