如何使用 celery 配置 django + raven,而不使用 celery 3.1+ 中过时的 djcelery 应用程序。

旧配置使用:

    INSTALLED_APPS = INSTALLED_APPS + (
    'raven.contrib.django.raven_compat',
)

最佳答案

Celery 3.1+ 不需要 djcelery,只需将 raven.contrib.django.raven_compat 添加到 INSTALLED_APPS 即可。

INSTALLED_APPS = (
    ...
    'raven.contrib.django.raven_compat',
)

RAVEN_CONFIG = {
    'dsn': 'YOUR_DSN',
}

LOGGING设置的示例代码:
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s',
        },
        'simple': {
            'format': '%(levelname)s %(name)s %(message)s',
        },
        'clear': {
            'format': '%(message)s',
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'clear',
            'filters': ['require_debug_true', ],
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'filters': ['require_debug_false', ],
        },
        'sentry': {
            'level': 'WARNING',
            'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
            'filters': ['require_debug_false', ],
        },
    },
    'loggers': {
        'raven': {
            'level': 'DEBUG',
            'handlers': ['console', ],
            'propagate': False,
        },
        'sentry.errors': {
            'level': 'DEBUG',
            'handlers': ['console', ],
            'propagate': False,
        },
        'log_to_console': {
            'handlers': ['console', ],
            'level': 'DEBUG',
            'propagate': False,
        },
        'log_to_sentry': {
            'handlers': ['sentry', ],
            'level': 'WARNING',
        },
    },
}

关于django - 在没有 Djcelery 的情况下使用 Celery 和 Django 配置 Raven,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25255698/

10-11 22:48
查看更多