summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Bartosh <ed.bartosh@linux.intel.com>2016-09-08 14:02:33 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-11-08 23:43:05 +0000
commitc4029c4f00197804511fc71e1190d34eb120212a (patch)
tree06b98becf8f5b77b5c87ab1263a48b001a2d2895
parente64564bcaa7331f505baa5209fef1f50dfda1469 (diff)
downloadbitbake-c4029c4f00197804511fc71e1190d34eb120212a.tar.gz
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@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/event.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/bb/event.py b/lib/bb/event.py
index 5ffe89eae..2cac074a0 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -117,21 +117,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)