[oe-commits] [bitbake] 01/01: lib/bb/build: enable access to logger within tasks
git at git.openembedded.org
git at git.openembedded.org
Wed Dec 14 12:26:00 UTC 2016
rpurdie pushed a commit to branch master
in repository bitbake.
commit f1cd6fab604f14d8686b1d783cbfe012d923ee42
Author: Paul Eggleton <paul.eggleton at linux.intel.com>
AuthorDate: Tue Dec 13 10:53:51 2016 +1300
lib/bb/build: enable access to logger within tasks
In certain circumstances it can be useful to get access to BitBake's
logger within a task; the main example is in OpenEmbedded's image
construction code where we want to be able to check the log file for
errors and warnings, but we don't want to see any errors or warnings
that were emitted through the logger; so we need a way to exclude those.
In order to do this, pass the logger object into the task via a
BB_TASK_LOGGER variable, and add a logging handler class to bb.utils
that can be added to it in order to keep a list of warnings/errors that
have been emitted.
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
lib/bb/build.py | 1 +
lib/bb/utils.py | 11 +++++++++++
2 files changed, 12 insertions(+)
diff --git a/lib/bb/build.py b/lib/bb/build.py
index 7a7aabb..0c2c1ba 100644
--- a/lib/bb/build.py
+++ b/lib/bb/build.py
@@ -562,6 +562,7 @@ def _exec_task(fn, task, d, quieterr):
localdata.setVar('BB_LOGFILE', logfn)
localdata.setVar('BB_RUNTASK', task)
+ localdata.setVar('BB_TASK_LOGGER', bblogger)
flags = localdata.getVarFlags(task)
diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index 9073f15..a22a05e 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -1503,3 +1503,14 @@ def load_plugins(logger, plugins, pluginpath):
plugins.append(obj or plugin)
else:
plugins.append(plugin)
+
+
+class LogCatcher(logging.Handler):
+ """Logging handler for collecting logged messages so you can check them later"""
+ def __init__(self):
+ self.messages = []
+ logging.Handler.__init__(self, logging.WARNING)
+ def emit(self, record):
+ self.messages.append(bb.build.logformatter.format(record))
+ def contains(self, message):
+ return (message in self.messages)
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list