From 8828c966eaa1d59907e3422022e064bae649a72a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Cacilh=CE=B1=CF=82?= Date: Wed, 27 Jan 2016 18:41:58 -0200 Subject: [PATCH] suggestion of exception logging with no need to duplicate the code --- hived/log.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hived/log.py b/hived/log.py index d9d96f3..3ba7c61 100644 --- a/hived/log.py +++ b/hived/log.py @@ -1,5 +1,5 @@ import logging - +from traceback import format_exception import simplejson as json from hived import trail @@ -27,4 +27,15 @@ def format(self, record): if trail.get_id(): record_dict['_trail_id'] = trail.get_id() + if record.exc_info: + etype, exc, tb = record.exc_info + record_dict['error'] = { + 'etype': etype.__name__, + 'exc': exc, + 'locals': {k: repr(v) + for k, v in tb.tb_frame.f_locals.iteritems() + if not k.startswith('__')}, + 'traceback': format_exception(etype, exc, tb), + } + return json.dumps(record_dict, default=json_handler)