我有一个工作正常的岗哨服务器。
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
为什么以及如何解决?
答案 0 :(得分:3)
您是否真的设置了SENTRY_DNS
或SENTRY_DSN
?
设置SENTRY_DSN
时,主要配置变量的实例化会自动发生(包括SENTRY_SERVERS
,SENTRY_PUBLIC_KEY
,SENTRY_SECRET_KEY
和SENTRY_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