我已经安装了 Sentry 来记录消息。我是哨兵新手,所以我不知道它是如何工作的。
它是否只记录那些放入我的文件中的消息,logger ("error something")
或者发生任何错误,它会自动记录它
假设我在我看来没有写任何日志语句。现在,如果我得到任何异常,那么哨兵将记录它,或者我必须为哨兵编写每个异常
有什么方法可以在不输入任何代码的情况下自动记录所有错误,因为我不知道会发生什么类型的异常
Sentry 自动捕获所有异常并记录它们。至于日志本身(使用记录器),默认情况下它不会捕获那些。你必须设置它。
您可以在此处查看如何设置日志记录。警告:一开始似乎很难做到。
编辑:摘自官方文档(07/26/2018):
与日志集成: 要与标准库的日志模块集成,并将所有 ERROR 及以上消息发送到哨兵,可以使用以下配置:
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,
},
},
}
用法:记录用法与在 Django 之外的用法相同,只是在额外数据中添加了一个可选的请求键:
logger.error('There was some crazy error', exc_info=True, extra={
# Optionally pass a request and we'll grab any information we can
'request': request,
})