raven - sentry + django =未配置服务器,并且未安装sentry。无法发送消息

时间:2012-06-21 10:29:22

标签: sentry raven

我有一个工作正常的岗哨服务器。

raven test <dnstoserver> -> Sending a test message... success!

我有一台django 1.3和raven 1.93的开发机器。 在django项目中我有这个:

setting.py:

SENTRY_KEY=<secretkey>
SENTRY_DNS=<dnstoserver>

INSTALLED_APPS = (
    'bar',
    'foo',
    'raven.contrib.django',
)

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': 'ERROR',
            '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', 'sentry'],
            'propagate': False,
        },        
    },
}

请注意在installed_apps中没有'sentry'。这是故意的,因为哨兵是服务器而不应该在客户端上!

views.py(在视图中):

import logging
logger = logging.getLogger("raven")
logger.error("test")

当我运行视图时,我进入控制台:

No servers configured, and sentry not installed. Cannot send message

为什么以及如何解决?

3 个答案:

答案 0 :(得分:3)

您是否真的设置了SENTRY_DNSSENTRY_DSN

设置SENTRY_DSN时,主要配置变量的实例化会自动发生(包括SENTRY_SERVERSSENTRY_PUBLIC_KEYSENTRY_SECRET_KEYSENTRY_PROJECT

答案 1 :(得分:0)

问题在于乌鸦DjangoClient的构建。它没有通过任何服务器,也找不到从哪个配置中窃取该配置。 我在settings.py中添加了:

SENTRY_SERVERS=<dnstoserver>

控制台现在每次调用raven时输出:

INFO 2012-06-21 05:33:19,831 base 4323 140735075462336 Configuring Raven for host: <dnstoserver>

但它就像一个魅力!哨兵信息......

顺便说一句。对于所有未记录的设置,请查看raven.contrib.django.models.get_client()

答案 2 :(得分:0)

我建议使用:

SENTRY_DSN = 'http://user:password@<domain>:<port>/<project_id>'

在APPS_INSTALLED中添加:

'raven.contrib.django.raven_compat'

另请参阅本指南: http://code.fetzig.at/post/18607051916/sentry-and-raven-setup-for-django-projects