哨兵、乌鸦和姜果芹菜

2024-05-17 22:49:24 发布

您现在位置:Python中文网/ 问答频道 /正文

既然django-sentry已经成为一个独立的服务器(而且非常棒),我正试图将我的应用移植到使用它。

我已经设置了一个独立的服务器,配置了一个django应用程序to log using django 1.3's logging dictionary conf as per the raven docs。我似乎无法让任何芹菜任务登录到哨兵服务器(但它们确实打印到控制台)。

我真的不知道该怎么办?我已将raven.contrib.django.celery包含在“已安装的应用程序”中。

未预料到的异常正在发送到sentry,自定义日志消息也通过以下方式发送:

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

Tags: todjango服务器log应用程序dictionaryloggingconf
2条回答

由于Raven 5+,您可能需要向Django项目添加一个设置,如Sentry logging in Django/Celery stopped working中所述

celerid_HIJACK_ROOT_LOGGER=错误

您需要添加以下内容:

'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,
        },
    },
}

相关问题 更多 >