[oe-commits] [bitbake] 01/05: event.py: output errors and warnings to stderr

git at git.openembedded.org git at git.openembedded.org
Wed Sep 14 21:43:18 UTC 2016


rpurdie pushed a commit to branch master-next
in repository bitbake.

commit 56ac0d4c7a5f47aeb707b15a0c305d9f73aae945
Author: Ed Bartosh <ed.bartosh at linux.intel.com>
AuthorDate: Thu Sep 8 14:02:33 2016 +0300

    event.py: output errors and warnings to stderr
    
    All logging messages are printed on stdout when processing
    UI event queue. This makes it impossible to distinguish between
    errors and normal bitbake output. Output to stderror or stdout
    depending on log level should fix this.
    
    Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/event.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/lib/bb/event.py b/lib/bb/event.py
index 1f3200e..42745e2 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -119,21 +119,28 @@ def print_ui_queue():
     logger = logging.getLogger("BitBake")
     if not _uiready:
         from bb.msg import BBLogFormatter
-        console = logging.StreamHandler(sys.stdout)
-        console.setFormatter(BBLogFormatter("%(levelname)s: %(message)s"))
-        logger.handlers = [console]
+        stdout = logging.StreamHandler(sys.stdout)
+        stderr = logging.StreamHandler(sys.stderr)
+        formatter = BBLogFormatter("%(levelname)s: %(message)s")
+        stdout.setFormatter(formatter)
+        stderr.setFormatter(formatter)
 
         # First check to see if we have any proper messages
         msgprint = False
         for event in ui_queue:
             if isinstance(event, logging.LogRecord):
                 if event.levelno > logging.DEBUG:
+                    if event.levelno >= logging.WARNING:
+                        logger.handlers = [stderr]
+                    else:
+                        logger.handlers = [stdout]
                     logger.handle(event)
                     msgprint = True
         if msgprint:
             return
 
         # Nope, so just print all of the messages we have (including debug messages)
+        logger.handlers = [stdout]
         for event in ui_queue:
             if isinstance(event, logging.LogRecord):
                 logger.handle(event)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list