3

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

4

1 回答 1

4

试试这个方法有效

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!')
于 2018-04-23T12:30:43.913 回答