如何使用多个raven配置的哨兵记录

时间:2016-10-27 07:37:43

标签: django sentry raven

我可以在Django设置中使用不同的RAVEN_CONFIG值定义多个dsn,然后以某种方式配置,以便当我从一个Django应用程序中的文件中获取错误时,他们会登录一个Sentry商店和其他Django应用程序在另一个Sentry商店?

1 个答案:

答案 0 :(得分:3)

试试这种方式

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!')