log: Improve log ctx information in log.Error exception

Before, it would show somethig like:
"""
osmo_gsm_tester.core.log.Error: Exited in error 255
"""

Now:
"""
osmo_gsm_tester.core.log.Error: rm-remote-dir(pid=24820): Exited in error 255 [trial↪4g:srsue-rftype@zmq+srsenb-rftype@zmq+mod-enb-nprb@6↪ping.py:9↪ping.py↪srsepc_10.42.42.118↪host-jenkins@10.42.42.110↪rm-remote-dir(pid=24820)]
"""

Change-Id: I8873f67a2f3df21c4dd552c92510535bf95e2c9d
This commit is contained in:
Pau Espin 2020-06-04 16:13:37 +02:00
parent 19fe3a1caf
commit cf6bec7542
1 changed files with 11 additions and 2 deletions

View File

@ -88,8 +88,17 @@ DATEFMT = '%H:%M:%S.%f'
get_process_id = lambda: '%d-%d' % (os.getpid(), time.time())
class Error(Exception):
def __init__(self, *messages, **named_items):
super().__init__(compose_message(messages, named_items))
def __init__(self, *messages, origin=None, **named_items):
msg = ''
if origin is None:
origin = Origin.find_on_stack(f=sys._getframe(1))
if origin:
msg += origin.name() + ': '
msg += compose_message(messages, named_items)
if origin and origin._parent is not None:
deeper_origins = origin.ancestry_str()
msg += ' [%s]' % deeper_origins
super().__init__(msg)
class LogTarget:
all_targets = []