[bitbake-devel] [PATCH 2/2] knotty: prevent extra logger from being enabled for tinfoil

Paul Eggleton paul.eggleton at linux.intel.com
Wed Jun 7 19:04:17 UTC 2017


tinfoil sets up its own logger by default, but if and when we initialise
the UI (by default knotty) will also set one up, leading to duplicated
messages specifically from tasks. To avoid this, rather than adding some
kind of parameter, just check if there is already a logger outputting to
stdout/stderr and if so, skip adding our own.

Part of the fix for [YOCTO #11275].

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
 lib/bb/msg.py       | 7 +++++++
 lib/bb/ui/knotty.py | 5 +++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/bb/msg.py b/lib/bb/msg.py
index 90b1582..f1723be 100644
--- a/lib/bb/msg.py
+++ b/lib/bb/msg.py
@@ -216,3 +216,10 @@ def logger_create(name, output=sys.stderr, level=logging.INFO, preserve_handlers
         logger.handlers = [console]
     logger.setLevel(level)
     return logger
+
+def has_console_handler(logger):
+    for handler in logger.handlers:
+        if isinstance(handler, logging.StreamHandler):
+            if handler.stream in [sys.stderr, sys.stdout]:
+                return True
+    return False
diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
index 82aa7c4..a19c3b3 100644
--- a/lib/bb/ui/knotty.py
+++ b/lib/bb/ui/knotty.py
@@ -365,8 +365,9 @@ def main(server, eventHandler, params, tf = TerminalFilter):
     bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr)
     console.setFormatter(format)
     errconsole.setFormatter(format)
-    logger.addHandler(console)
-    logger.addHandler(errconsole)
+    if not bb.msg.has_console_handler(logger):
+        logger.addHandler(console)
+        logger.addHandler(errconsole)
 
     bb.utils.set_process_name("KnottyUI")
 
-- 
2.9.4




More information about the bitbake-devel mailing list