当前位置: 首页>>代码示例>>Python>>正文


Python Client.capture方法代码示例

本文整理汇总了Python中raven.base.Client.capture方法的典型用法代码示例。如果您正苦于以下问题:Python Client.capture方法的具体用法?Python Client.capture怎么用?Python Client.capture使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在raven.base.Client的用法示例。


在下文中一共展示了Client.capture方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_raise_exception_on_send_error

# 需要导入模块: from raven.base import Client [as 别名]
# 或者: from raven.base.Client import capture [as 别名]
    def test_raise_exception_on_send_error(self, should_try, _send_remote):
        should_try.return_value = True
        client = Client(
            servers=['sync+http://example.com'],
            public_key='public',
            secret_key='secret',
            project=1,
        )

        # Test for the default behaviour in which a send error is handled by the client
        _send_remote.side_effect = Exception()
        client.capture('Message', data={}, date=None, time_spent=10,
                       extra={}, stack=None, tags=None, message='Test message')
        assert client.state.status == client.state.ERROR

        # Test for the case in which a send error is raised to the calling frame.
        client = Client(
            servers=['sync+http://example.com'],
            public_key='public',
            secret_key='secret',
            project=1,
            raise_send_errors=True,
        )
        with self.assertRaises(Exception):
            client.capture('Message', data={}, date=None, time_spent=10,
                           extra={}, stack=None, tags=None, message='Test message')
开发者ID:DramaFever,项目名称:raven-python,代码行数:28,代码来源:tests.py

示例2: ThreadedTransportTest

# 需要导入模块: from raven.base import Client [as 别名]
# 或者: from raven.base.Client import capture [as 别名]
class ThreadedTransportTest(TestCase):
    def setUp(self):
        self.client = Client(
            dsn="threaded+http://some_username:[email protected]:8143/1",
        )

    @mock.patch('raven.transport.base.HTTPTransport.send')
    def test_does_send(self, send):
        self.client.capture('Message', message='foo')

        time.sleep(0)

        # TODO: This test could be more precise by ensuring it's sending the same params that are sent
        # to the ThreadedHTTPTransport.send() method
        send.assert_called_once()
开发者ID:AstromechZA,项目名称:raven-python,代码行数:17,代码来源:tests.py

示例3: test_raise_exception_on_send_error

# 需要导入模块: from raven.base import Client [as 别名]
# 或者: from raven.base.Client import capture [as 别名]
    def test_raise_exception_on_send_error(self, should_try, _send_remote):
        should_try.return_value = True
        client = Client(dsn="sync+http://public:[email protected]/1")

        # Test for the default behaviour in which a send error is handled by the client
        _send_remote.side_effect = Exception()
        client.capture(
            "Message", data={}, date=None, time_spent=10, extra={}, stack=None, tags=None, message="Test message"
        )
        assert client.state.status == client.state.ERROR

        # Test for the case in which a send error is raised to the calling frame.
        client = Client(dsn="sync+http://public:[email protected]/1", raise_send_errors=True)
        with self.assertRaises(Exception):
            client.capture(
                "Message", data={}, date=None, time_spent=10, extra={}, stack=None, tags=None, message="Test message"
            )
开发者ID:HPotter,项目名称:raven-python,代码行数:19,代码来源:tests.py

示例4: SentryHandler

# 需要导入模块: from raven.base import Client [as 别名]
# 或者: from raven.base.Client import capture [as 别名]
class SentryHandler(logging.Handler, object):
    reserved = ['threadName', 'name', 'thread', 'created', 'process', 'processName', 'args', 'module',
                'filename', 'levelno', 'exc_text', 'pathname', 'lineno', 'msg', 'exc_info', 'funcName',
                'relativeCreated', 'levelname', 'msecs', 'data', 'stack', 'message']

    def __init__(self, *args, **kwargs):
        if len(args) == 1:
            self.client = args[0]
        elif 'client' in kwargs:
            self.client = kwargs['client']
        elif len(args) == 2 and not kwargs:
            servers, key = args
            self.client = Client(servers=servers, key=key)
        else:
            self.client = Client(*args, **kwargs)

        logging.Handler.__init__(self)

    def emit(self, record):
        # from sentry.client.middleware import SentryLogMiddleware

        # # Fetch the request from a threadlocal variable, if available
        # request = getattr(SentryLogMiddleware.thread, 'request', None)

        self.format(record)

        # Avoid typical config issues by overriding loggers behavior
        if record.name == 'sentry.errors':
            print >> sys.stderr, record.message
            return

        try:
            return self._emit(record)
        except Exception:
            print >> sys.stderr, "Top level Sentry exception caught - failed creating log record"
            print >> sys.stderr, record.msg
            print >> sys.stderr, traceback.format_exc()

            try:
                self.client.capture('Exception')
            except Exception:
                pass

    def _emit(self, record, **kwargs):
        # {'threadName': 'MainThread', 'name': 'foo', 'thread': 140735216916832, 'created': 1319164393.308008, 'process': 89141, 'processName': 'MainProcess', 'args': (), 'module': 'Unknown module', 'filename': None, 'levelno': 20, 'exc_text': None, 'pathname': None, 'lineno': None, 'msg': 'test', 'exc_info': (None, None, None), 'funcName': None, 'relativeCreated': 3441.9949054718018, 'levelname': 'INFO', 'msecs': 308.00795555114746}
        extra = {}

        for k, v in record.__dict__.iteritems():
            if k in self.reserved:
                continue
            extra[k] = v

        data = getattr(record, 'data', {})

        date = datetime.datetime.utcfromtimestamp(record.created)

        # If there's no exception being processed, exc_info may be a 3-tuple of None
        # http://docs.python.org/library/sys.html#sys.exc_info
        if record.exc_info and all(record.exc_info):
            handler = self.client.get_handler('raven.events.Exception')

            data.update(handler.capture(exc_info=record.exc_info))

        data['level'] = record.levelno
        data['logger'] = record.name

        return self.client.capture('Message', message=record.msg, params=record.args,
                            stack=getattr(record, 'stack', None), data=data, extra=extra,
                            date=date, **kwargs)
开发者ID:Kronuz,项目名称:raven,代码行数:71,代码来源:logging.py

示例5: SentryHandler

# 需要导入模块: from raven.base import Client [as 别名]
# 或者: from raven.base.Client import capture [as 别名]
class SentryHandler(logging.Handler, object):
    def __init__(self, *args, **kwargs):
        if len(args) == 1:
            self.client = args[0]
        elif 'client' in kwargs:
            self.client = kwargs['client']
        elif len(args) == 2 and not kwargs:
            servers, key = args
            self.client = Client(servers=servers, key=key)
        else:
            self.client = Client(*args, **kwargs)

        logging.Handler.__init__(self)

    def emit(self, record):
        # from sentry.client.middleware import SentryLogMiddleware

        # # Fetch the request from a threadlocal variable, if available
        # request = getattr(SentryLogMiddleware.thread, 'request', None)

        self.format(record)

        # Avoid typical config issues by overriding loggers behavior
        if record.name == 'sentry.errors':
            print >> sys.stderr, record.message
            return

        try:
            return self._emit(record)
        except Exception:
            print >> sys.stderr, "Top level Sentry exception caught - failed creating log record"
            print >> sys.stderr, record.msg
            print >> sys.stderr, traceback.format_exc()

            try:
                self.client.capture('Exception')
            except Exception:
                pass

    def _emit(self, record, **kwargs):
        data = {}

        for k, v in record.__dict__.iteritems():
            if '.' not in k:
                continue
            data[k] = v

        stack = getattr(record, 'stack', None)
        if stack is True:
            stack = iter_stack_frames()

        if stack:
            frames = []
            started = False
            last_mod = ''
            for frame in iter_stack_frames():
                if not started:
                    f_globals = getattr(frame, 'f_globals', {})
                    module_name = f_globals.get('__name__', '')
                    if last_mod.startswith('logging') and not module_name.startswith('logging'):
                        started = True
                    else:
                        last_mod = module_name
                        continue
                frames.append(frame)
            stack = frames

        extra = getattr(record, 'data', {})

        date = datetime.datetime.utcfromtimestamp(record.created)

        # If there's no exception being processed, exc_info may be a 3-tuple of None
        # http://docs.python.org/library/sys.html#sys.exc_info
        if record.exc_info and all(record.exc_info):
            handler = self.client.get_handler('raven.events.Exception')

            data.update(handler.capture(exc_info=record.exc_info))

        data['level'] = record.levelno
        data['logger'] = record.name

        return self.client.capture('Message', message=record.msg, params=record.args,
                            stack=stack, data=data, extra=extra,
                            date=date, **kwargs)
开发者ID:twoolie,项目名称:raven,代码行数:86,代码来源:logging.py

示例6: error_reporter

# 需要导入模块: from raven.base import Client [as 别名]
# 或者: from raven.base.Client import capture [as 别名]
def error_reporter(request):
    request._request.CORS = ['POST']
    client = Client(settings.SENTRY_DSN)
    client.capture('raven.events.Exception', data=request.DATA)
    return Response(status=204)
开发者ID:wraithan,项目名称:zamboni,代码行数:7,代码来源:resources.py


注:本文中的raven.base.Client.capture方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。