本文整理汇总了Python中raven.utils.stacks.get_stack_info函数的典型用法代码示例。如果您正苦于以下问题:Python get_stack_info函数的具体用法?Python get_stack_info怎么用?Python get_stack_info使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_stack_info函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: capture
def capture(self, exc_info=None, **kwargs):
if not exc_info or exc_info is True:
exc_info = sys.exc_info()
if not exc_info:
raise ValueError('No exception found')
exc_type, exc_value, exc_traceback = exc_info
try:
frames = get_stack_info(
iter_traceback_frames(exc_traceback),
transformer=self.transform)
exc_module = getattr(exc_type, '__module__', None)
if exc_module:
exc_module = str(exc_module)
exc_type = getattr(exc_type, '__name__', '<unknown>')
return {
'level': kwargs.get('level', logging.ERROR),
'sentry.interfaces.Exception': {
'value': to_unicode(exc_value),
'type': str(exc_type),
'module': to_unicode(exc_module),
},
'sentry.interfaces.Stacktrace': {
'frames': frames
},
}
finally:
try:
del exc_type, exc_value, exc_traceback
except Exception as e:
self.logger.exception(e)
开发者ID:carljm,项目名称:raven-python,代码行数:35,代码来源:events.py
示例2: _add_exception_info
def _add_exception_info(self, data, record):
"""Adds sentry interfaces Exception and Stacktrace.
See
http://sentry.readthedocs.org/en/latest/developer/interfaces/index.html
for more information on Sentry interfaces."""
type_, value, tb = record.exc_info
data[SENTRY_INTERFACES_EXCEPTION] = {"type": str(type_),
"value": str(value),
"module": record.module
}
stack = inspect.getinnerframes(tb)
# This next python statement copied pretty much verbatim from
# raven-python (https://github.com/getsentry/raven-python).
#
# raven-python is:
#
# Copyright (c) 2009 David Cramer and individual contributors.
# All rights reserved.
frames = varmap(
lambda k, v: shorten(
v,
string_length=self.string_max_length,
list_length=self.list_max_length),
get_stack_info(iter_stack_frames(stack)))
# end of copied code
data['sentry.interfaces.Stacktrace'] = {
'frames': frames }
return data
开发者ID:ronaldevers,项目名称:snitch,代码行数:34,代码来源:log2json.py
示例3: test_bad_locals_in_frame
def test_bad_locals_in_frame(self):
frame = Mock()
frame.f_locals = Context({
'foo': 'bar',
'biz': 'baz',
})
frame.f_lineno = 1
frame.f_globals = {}
frame.f_code.co_filename = __file__
frame.f_code.co_name = __name__
frames = [(frame, 1)]
results = get_stack_info(frames)
assert len(results['frames']) == 1
result = results['frames'][0]
assert 'vars' in result
if PY3:
expected = {
"foo": "'bar'",
"biz": "'baz'",
}
else:
expected = {
"foo": "u'bar'",
"biz": "u'baz'",
}
assert result['vars'] == expected
开发者ID:ehfeng,项目名称:raven-python,代码行数:27,代码来源:tests.py
示例4: trace_exception
def trace_exception(e):
try:
exc_info = sys.exc_info()
frames = iter_traceback_frames(exc_info[-1])
trace(type_=EventType.exception, exc=str(e), stack=get_stack_info(frames))
except Exception:
pass
开发者ID:thulio,项目名称:hived,代码行数:7,代码来源:trail.py
示例5: metlog_call
def metlog_call(self, *args, **kwargs):
if self.kwargs is None:
self.kwargs = {}
str_length = self.kwargs.pop('str_length', 200)
list_length = self.kwargs.pop('list_length', 50)
try:
result = self._fn(*args, **kwargs)
return result
except Exception, e:
exc_info = sys.exc_info()
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(lambda k, v: shorten(v,
string_length=str_length,
list_length=list_length),
get_stack_info(iter_traceback_frames(exc_traceback)))
culprit = get_culprit(frames)
metlog_blob = {'culprit': culprit,
'frames': frames}
CLIENT_WRAPPER.client.metlog('stacktrace',
logger=self._fn_fq_name,
fields=metlog_blob)
# re-raise the exception so that callers up the call stack
# have a chance to do the right thing
raise
开发者ID:crankycoder,项目名称:metlog-raven,代码行数:30,代码来源:raven_plugin.py
示例6: capture
def capture(self, exc_info=None, **kwargs):
new_exc_info = False
if not exc_info or exc_info is True:
new_exc_info = True
exc_info = sys.exc_info()
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(lambda k, v: shorten(v), get_stack_info(iter_traceback_frames(exc_traceback)))
culprit = get_culprit(frames, self.client.include_paths, self.client.exclude_paths)
if hasattr(exc_type, '__module__'):
exc_module = exc_type.__module__
exc_type = exc_type.__name__
else:
exc_module = None
exc_type = exc_type.__name__
finally:
if new_exc_info:
try:
del exc_info
del exc_traceback
except Exception, e:
self.logger.exception(e)
开发者ID:Ender27182818,项目名称:raven,代码行数:26,代码来源:events.py
示例7: test_bad_locals_in_frame
def test_bad_locals_in_frame(self):
frame = Mock()
frame.f_locals = Context({
'foo': 'bar',
'biz': 'baz',
})
frame.f_lineno = 1
frame.f_globals = {}
frame.f_code.co_filename = __file__
frame.f_code.co_name = __name__
frames = [(frame, 1)]
results = get_stack_info(frames)
self.assertEquals(len(results), 1)
result = results[0]
assert 'vars' in result
if six.PY3:
expected = {
"'foo'": "'bar'",
"'biz'": "'baz'",
}
else:
expected = {
"u'foo'": "u'bar'",
"u'biz'": "u'baz'",
}
assert result['vars'] == expected
开发者ID:1Anastaska,项目名称:raven-python,代码行数:27,代码来源:tests.py
示例8: capture
def capture(self, exc_info=None, **kwargs):
new_exc_info = False
if not exc_info or exc_info is True:
new_exc_info = True
exc_info = sys.exc_info()
if not exc_info:
raise ValueError('No exception found')
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(lambda k, v: shorten(v,
string_length=self.client.string_max_length, list_length=self.client.list_max_length),
get_stack_info(iter_traceback_frames(exc_traceback)))
culprit = get_culprit(frames, self.client.include_paths, self.client.exclude_paths)
exc_module = getattr(exc_type, '__module__', None)
exc_type = getattr(exc_type, '__name__', '<unknown>')
finally:
if new_exc_info:
try:
del exc_info
del exc_traceback
except Exception, e:
self.logger.exception(e)
开发者ID:AstromechZA,项目名称:raven-python,代码行数:27,代码来源:events.py
示例9: capture
def capture(self, exc_info=None, **kwargs):
if not exc_info or exc_info is True:
exc_info = sys.exc_info()
if not exc_info:
raise ValueError("No exception found")
exc_type, exc_value, exc_traceback = exc_info
try:
frames = get_stack_info(iter_traceback_frames(exc_traceback), transformer=self.transform)
exc_module = getattr(exc_type, "__module__", None)
if exc_module:
exc_module = str(exc_module)
exc_type = getattr(exc_type, "__name__", "<unknown>")
return {
"level": logging.ERROR,
"sentry.interfaces.Exception": {
"value": to_unicode(exc_value),
"type": str(exc_type),
"module": to_unicode(exc_module),
},
"sentry.interfaces.Stacktrace": {"frames": frames},
}
finally:
try:
del exc_type, exc_value, exc_traceback
except Exception as e:
self.logger.exception(e)
开发者ID:flupke,项目名称:raven,代码行数:31,代码来源:events.py
示例10: capture
def capture(self, exc_info=None, **kwargs):
new_exc_info = False
if not exc_info or exc_info is True:
new_exc_info = True
exc_info = sys.exc_info()
if not exc_info:
raise ValueError("No exception found")
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(
lambda k, v: shorten(
v, string_length=self.client.string_max_length, list_length=self.client.list_max_length
),
get_stack_info(
iter_traceback_frames(exc_traceback),
list_max_length=self.client.list_max_length,
string_max_length=self.client.string_max_length,
),
)
exc_module = getattr(exc_type, "__module__", None)
if exc_module:
exc_module = str(exc_module)
exc_type = getattr(exc_type, "__name__", "<unknown>")
finally:
if new_exc_info:
try:
del exc_info
del exc_traceback
except Exception, e:
self.logger.exception(e)
开发者ID:huoxudong125,项目名称:socorro,代码行数:34,代码来源:events.py
示例11: create_from_exception
def create_from_exception(self, exc_info=None, **kwargs):
"""
Creates an event from an exception.
>>> try:
>>> exc_info = sys.exc_info()
>>> client.create_from_exception(exc_info)
>>> finally:
>>> del exc_info
If exc_info is not provided, or is set to True, then this method will
perform the ``exc_info = sys.exc_info()`` and the requisite clean-up
for you.
"""
new_exc = False
if not exc_info or exc_info is True:
new_exc = True
exc_info = sys.exc_info()
data = kwargs.pop('data', {}) or {}
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(shorten, get_stack_info(iter_traceback_frames(exc_traceback)))
if hasattr(exc_type, '__class__'):
exc_module = exc_type.__class__.__module__
else:
exc_module = None
data['__sentry__'] = {}
data['__sentry__']['frames'] = frames
data['__sentry__']['exception'] = [exc_module, exc_value.args]
tb_message = '\n'.join(traceback.format_exception(exc_type, exc_value, exc_traceback))
kwargs.setdefault('message', transform(force_unicode(exc_value)))
return self.process(
class_name=exc_type.__name__,
traceback=tb_message,
data=data,
**kwargs
)
finally:
# It's important that we cleanup the frames object (specifically exc_info[2])
# to ensure that GC can happen properly.
if new_exc:
try:
del exc_info
del exc_traceback
except Exception, e:
logger.exception(e)
开发者ID:d1on,项目名称:raven,代码行数:54,代码来源:base.py
示例12: create_from_exception
def create_from_exception(self, exc_info=None, **kwargs):
"""
Creates an event from an exception.
>>> try:
>>> exc_info = sys.exc_info()
>>> client.create_from_exception(exc_info)
>>> finally:
>>> del exc_info
"""
new_exc = bool(exc_info)
if not exc_info or exc_info is True:
exc_info = sys.exc_info()
data = kwargs.pop('data', {}) or {}
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(shorten, get_stack_info(iter_traceback_frames(exc_traceback)))
if hasattr(exc_type, '__class__'):
exc_module = exc_type.__class__.__module__
else:
exc_module = None
data['__sentry__'] = {}
data['__sentry__']['frames'] = frames
data['__sentry__']['exception'] = [exc_module, exc_value.args]
tb_message = '\n'.join(traceback.format_exception(exc_type, exc_value, exc_traceback))
kwargs.setdefault('message', transform(force_unicode(exc_value)))
return self.process(
class_name=exc_type.__name__,
traceback=tb_message,
data=data,
**kwargs
)
finally:
if new_exc:
try:
del exc_info
except Exception, e:
logger.exception(e)
开发者ID:maximbo,项目名称:raven,代码行数:46,代码来源:base.py
示例13: test_max_frames
def test_max_frames(self):
frames = []
for x in range(10):
frame = Mock()
frame.f_locals = {}
frame.f_lineno = None
frame.f_globals = {}
frame.f_code.co_filename = str(x)
frame.f_code.co_name = __name__
frames.append((frame, 1))
results = get_stack_info(frames, max_frames=4)
assert results["frames_omitted"] == (3, 9)
assert len(results["frames"]) == 4
assert results["frames"][0]["filename"] == "0"
assert results["frames"][1]["filename"] == "1"
assert results["frames"][2]["filename"] == "8"
assert results["frames"][3]["filename"] == "9"
开发者ID:inspirehep,项目名称:raven-python,代码行数:18,代码来源:tests.py
示例14: test_bad_locals_in_frame
def test_bad_locals_in_frame(self):
frame = Mock()
frame.f_locals = Context({"foo": "bar", "biz": "baz"})
frame.f_lineno = 1
frame.f_globals = {}
frame.f_code.co_filename = __file__
frame.f_code.co_name = __name__
frames = [(frame, 1)]
results = get_stack_info(frames)
assert len(results["frames"]) == 1
result = results["frames"][0]
assert "vars" in result
if six.PY3:
expected = {"foo": "'bar'", "biz": "'baz'"}
else:
expected = {"foo": "u'bar'", "biz": "u'baz'"}
assert result["vars"] == expected
开发者ID:PierreF,项目名称:raven-python,代码行数:18,代码来源:tests.py
示例15: test_max_frames
def test_max_frames(self):
frames = []
for x in xrange(10):
frame = Mock()
frame.f_locals = {}
frame.f_lineno = None
frame.f_globals = {}
frame.f_code.co_filename = str(x)
frame.f_code.co_name = __name__
frames.append((frame, 1))
results = get_stack_info(frames, max_frames=4)
assert results['frames_omitted'] == (3, 9)
assert len(results['frames']) == 4
assert results['frames'][0]['filename'] == '0'
assert results['frames'][1]['filename'] == '1'
assert results['frames'][2]['filename'] == '8'
assert results['frames'][3]['filename'] == '9'
开发者ID:TracyWebTech,项目名称:raven-python,代码行数:18,代码来源:tests.py
示例16: __init__
def __init__(self, frame):
self.f_globals = {
"__file__": frame.f_globals.get("__file__", "__main__"),
"__name__": frame.f_globals.get("__name__"),
"__loader__": None,
}
try:
from raven.utils.stacks import get_stack_info
except ImportError:
pass
else:
self.f_locals = get_stack_info([(frame, 1)])[0]['vars']
try:
fl["__traceback_hide__"] = frame.f_locals["__traceback_hide__"]
except KeyError:
pass
self.f_code = self.Code(frame.f_code)
self.f_lineno = frame.f_lineno
开发者ID:keshavmagge,项目名称:billiard,代码行数:18,代码来源:einfo.py
示例17: test_bad_locals_in_frame
def test_bad_locals_in_frame(self):
frame = Mock()
frame.f_locals = Context({"foo": "bar", "biz": "baz"})
frame.f_lineno = 1
frame.f_globals = {}
frame.f_code.co_filename = __file__
frame.f_code.co_name = __name__
frames = [frame]
results = get_stack_info(frames)
self.assertEquals(len(results), 1)
result = results[0]
self.assertTrue("vars" in result)
vars = result["vars"]
self.assertTrue(isinstance(vars, dict))
self.assertTrue("foo" in vars)
self.assertEquals(vars["foo"], "bar")
self.assertTrue("biz" in vars)
self.assertEquals(vars["biz"], "baz")
开发者ID:mvantellingen,项目名称:raven,代码行数:19,代码来源:tests.py
示例18: test_frame_allowance
def test_frame_allowance(self):
frames = []
for x in range(10):
frame = Mock()
frame.f_locals = {"k": "v"}
frame.f_lineno = None
frame.f_globals = {}
frame.f_code.co_filename = str(x)
frame.f_code.co_name = __name__
frames.append((frame, 1))
results = get_stack_info(frames, frame_allowance=4)
assert len(results["frames"]) == 10
assert results["frames"][0]["filename"] == "0"
assert results["frames"][1]["filename"] == "1"
for idx, frame in enumerate(results["frames"][2:8]):
assert frame["filename"] == str(idx + 2)
assert "vars" not in frame
assert results["frames"][8]["filename"] == "8"
assert results["frames"][9]["filename"] == "9"
开发者ID:PierreF,项目名称:raven-python,代码行数:20,代码来源:tests.py
示例19: capture
def capture(self, exc_info=None, **kwargs):
new_exc_info = False
if not exc_info or exc_info is True:
new_exc_info = True
exc_info = sys.exc_info()
if not exc_info:
raise ValueError('No exception found')
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(lambda k, v: shorten(v,
string_length=self.client.string_max_length, list_length=self.client.list_max_length),
get_stack_info(iter_traceback_frames(exc_traceback),
list_max_length=self.client.list_max_length,
string_max_length=self.client.string_max_length))
exc_module = getattr(exc_type, '__module__', None)
if exc_module:
exc_module = str(exc_module)
exc_type = getattr(exc_type, '__name__', '<unknown>')
finally:
if new_exc_info:
try:
del exc_info
del exc_traceback
except Exception as e:
self.logger.exception(e)
return {
'level': logging.ERROR,
'sentry.interfaces.Exception': {
'value': to_unicode(exc_value),
'type': str(exc_type),
'module': exc_module,
},
'sentry.interfaces.Stacktrace': {
'frames': frames
},
}
开发者ID:MyCollege,项目名称:raven,代码行数:41,代码来源:events.py
示例20: _get_value
def _get_value(self, exc_type, exc_value, exc_traceback):
"""
Convert exception info to a value for the values list.
"""
stack_info = get_stack_info(
iter_traceback_frames(exc_traceback),
transformer=self.transform,
capture_locals=self.client.capture_locals,
)
exc_module = getattr(exc_type, '__module__', None)
if exc_module:
exc_module = str(exc_module)
exc_type = getattr(exc_type, '__name__', '<unknown>')
return {
'value': to_unicode(exc_value),
'type': str(exc_type),
'module': to_unicode(exc_module),
'stacktrace': stack_info,
}
开发者ID:georgexsh,项目名称:raven-python,代码行数:21,代码来源:events.py
注:本文中的raven.utils.stacks.get_stack_info函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论