Django/Raven/Sentry:不同dsn的不同记录器

2024-06-16 08:50:09 发布

您现在位置:Python中文网/ 问答频道 /正文

如何配置Djangologging以支持不同的loggers的不同dsn?在

像这样:

设置.py

  LOGGING = {
    ..
    'handlers': {
        'sentry1': {
            'level': 'ERROR',
            'class': 'raven.contrib.django.handlers.SentryHandler',
            'dsn': '<DSN1>',
        },        
        'sentry2': {
            'level': 'ERROR',
            'class': 'raven.contrib.django.handlers.SentryHandler',
            'dsn': '<DSN2>',
        },
    },
    'loggers': {
        'sentry1':{
            'handlers': ['console', 'sentry1'],
            'level': 'ERROR',
            'propagate': False,
        },
        'sentry2':{
            'handlers': ['console', 'sentry2'],
            'level': 'ERROR',
            'propagate': False,
        },
}

视图.py

^{pr2}$

Tags: djangopyhandlerserrorcontriblevelloggersclass
1条回答
网友
1楼 · 发布于 2024-06-16 08:50:09

试试这样对我有效

1)编写自定义处理程序

from __future__ import absolute_import

import logging

from raven.handlers.logging import SentryHandler


class CustomHandler(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(CustomHandler, self).__init__(dsn, **kwargs)

2)更改登录设置

^{pr2}$

3)在任何地方记录错误

import logging
logger = logging.getLogger('sentry2')
logger.error('yeey!')

它对我有用,用python3.6django2进行了测试。在

相关问题 更多 >