diff --git a/bitbake/lib/bb/__init__.py b/bitbake/lib/bb/__init__.py index 1a30fa11d7..1f7946e7b7 100644 --- a/bitbake/lib/bb/__init__.py +++ b/bitbake/lib/bb/__init__.py @@ -94,11 +94,11 @@ def note(*args): def warn(*args): logger.warn(''.join(args)) -def error(*args): - logger.error(''.join(args)) +def error(*args, **kwargs): + logger.error(''.join(args), extra=kwargs) -def fatal(*args): - logger.critical(''.join(args)) +def fatal(*args, **kwargs): + logger.critical(''.join(args), extra=kwargs) raise BBHandledException() def deprecated(func, name=None, advice=""): diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py index cce01feba2..34399640c0 100644 --- a/bitbake/lib/bb/build.py +++ b/bitbake/lib/bb/build.py @@ -350,6 +350,8 @@ exit $? # The caller will call exit themselves, so bb.error() is # what we want here rather than bb.fatal() bb.error(value) + elif cmd == 'bbfatal_log': + bb.error(value, forcelog=True) elif cmd == 'bbdebug': splitval = value.split(' ', 1) level = int(splitval[0]) @@ -446,7 +448,10 @@ def _exec_task(fn, task, d, quieterr): self.triggered = False logging.Handler.__init__(self, logging.ERROR) def emit(self, record): - self.triggered = True + if getattr(record, 'forcelog', False): + self.triggered = False + else: + self.triggered = True # Handle logfiles si = open('/dev/null', 'r')