在Sentry Django guide之后,我设置了我的项目并部署了它。
因此,我使用SENTRY_DSN
值和release
值配置RAVEN_CONFIG
,并将raven.contrib.django.raven_compat
包含在我的INSTALLED_APPS
中。
我已经确认,使用此配置,以下命令将在sentry中正确生成消息。
python manage.py raven test
然而,我创建了下面的django视图来引发一个异常,作为另一种确认sentry是否工作的方法,当我点击这个视图时,我得到了一个500的响应,但是sentry中什么也没有显示。
- 应用程序1/views.py*
def error(request):
x = 1/0 # error for sentry testing
我的期望是,在django中发生的任何异常(包括500个错误)都将被发送到sentry,而不需要使用日志记录。
我对raven sentry配置的理解是错误的吗?或者,我需要配置其他的东西吗?
我正在使用django的日志设置,但目前我并不关心这些消息是“错误”还是其他的,我目前的主要目标是捕捉并发送任何异常到sentry。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '{asctime} [{levelname:5}] ({name}) {funcName}: {message}',
'style': '{',
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'standard',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': DJANGO_CORE_LOG_LEVEL, # Change to DEBUG to see db queries
},
'app1': {
'handlers': ['console'],
'level': DJANGO_LOG_LEVEL,
'propagate': True,
},
'app2': {
'handlers': ['console'],
'level': DJANGO_LOG_LEVEL,
'propagate': True,
}
},
}
更新
我已经设法让app1.views.error
视图在本地使用 runserver 时向sentry报告错误,但在更新配置并部署后,它在部署时仍然不工作。
5条答案
按热度按时间moiiocjp1#
从哨兵那里
}
链接到文档:https://docs.sentry.io/clients/python/integrations/django/
编辑:来自评论
如果你不想手工做这个,并且想在你的项目中任何地方触发异常块的任何时候都发生哨兵日志记录,那么使用上面的基于日志记录的解决方案。
jecbmhm32#
只是想确认一下其他的答案都过时了。
raven库已经被sentry-sdk取代了,并且设置这个库不再需要修改日志配置,因为默认的日志集成已经可以监视任何日志调用。
就这么做
在您的www.example.com中settings.py,您就可以开始了(记得导出一个
SENTRY_DSN
变量之类的东西)。请参见https://docs.sentry.io/platforms/python/guides/django/#configure
x7rlezfr3#
Updated Sentry documents提到,有了Django集成,您不需要在
settings.py
中显式定义LOGGER:kpbwa7wx4#
正如@Mehran所说,在
settings.py
中配置了LOGGING
之后,您将能够使用日志记录。让我们假设您在loggers
中配置了example
,如下所示:然后;
logger
还具有warn
、info
等。bcs8qyzn5#
也可以不使用任何Sentry库而使用纯
requests
直接发布到Sentry DSN。如果你运行的Python或Django版本与Sentry的最新DSN不兼容,这会很有用。我已经发布了一个代码-包括一个示例测试-here