【发布时间】:2016-10-27 07:37:43
【问题描述】:
我可以在我的 Django 设置中定义多个 RAVEN_CONFIGs 并为它们使用不同的 dsn 值,然后以某种方式进行配置,以便当我从一个 Django 应用程序中的文件中收到错误时,它们会登录到一个哨兵商店和其他 Django另一个 Sentry 商店中的应用?
【问题讨论】:
我可以在我的 Django 设置中定义多个 RAVEN_CONFIGs 并为它们使用不同的 dsn 值,然后以某种方式进行配置,以便当我从一个 Django 应用程序中的文件中收到错误时,它们会登录到一个哨兵商店和其他 Django另一个 Sentry 商店中的应用?
【问题讨论】:
试试这个方法吧
1) 自定义 SentryHandler 的处理程序
from __future__ import absolute_import
import logging
from raven.handlers.logging import SentryHandler
class CustomSentryHandler(SentryHandler):
def __init__(self, *args, **kwargs):
dsn = kwargs.pop('dsn', None)
self.tags = kwargs.pop('tags', None)
logging.Handler.__init__(self, level=kwargs.get('level', logging.NOTSET))
super(CustomSentryHandler, self).__init__(dsn, **kwargs)
2) 更改您的登录设置
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s '
'%(process)d %(thread)d %(message)s'
},
},
'handlers': {
'sentry1': {
'level': 'ERROR',
'class': 'project.sentry.CustomHandler',
'dsn': '<DSN1>',
},
},
'loggers': {
'sentry1': {
'handlers': ['sentry1'],
'level': 'ERROR',
'propagate': False,
}
}
}
3) 记录您的错误
import logging
logger = logging.getLogger('sentry2')
logger.error('yeey!')
【讨论】: