From cf6bec75426c361b3149622191e6a61e1450c454 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Thu, 4 Jun 2020 16:13:37 +0200 Subject: [PATCH] log: Improve log ctx information in log.Error exception MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/osmo_gsm_tester/core/log.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index 8ae55d9f..2cf1af0b 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -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 = []