我正在尝试使用简单的日志记录,并希望向Sentry发送错误/异常。
我根据文档配置了Sentry并在我的dev(python manage.py raven test
)上成功运行了测试
我将Sentry documentation中的Logging配置添加到Django设置
当我将此代码放入我的视图中时,它根本不起作用
import logging
logger = logging.getLogger(__name__)
logger.error('There was an error, with a stacktrace!', extra={
'stack': True,
})
也许我错过了什么
感谢您的帮助
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', # To capture more than ERROR, change to WARNING, INFO, etc.
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
'tags': {'custom-tag': 'x'},
},
'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,
},
},
}
答案 0 :(得分:1)
与Django集成需要在settings.py中使用特殊的Raven Django应用程序和RAVEN_CONFIG:
INSTALLED_APPS = (
'raven.contrib.django.raven_compat',
)
RAVEN_CONFIG = {
'dsn': 'https://<key>:<secret>@sentry.io/<project>',
}
你有设置它们吗?
答案 1 :(得分:-1)
首先,您不应在__name__
方法中使用 .getLogger()
,因为它会加载默认的日志记录配置。您可以使用已定义的loggers
来记录Django设置:
logger = logging.getLogger('raven')
然后需要在你的Django日志配置中添加sentry
个处理程序:
'raven': {
'level': 'DEBUG',
'handlers': ['console', 'sentry'],
'propagate': False,
},