From 614cbeddc8f092bf2748ae7555d62467f3c45f16 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Mon, 27 Mar 2017 13:17:27 +1300 Subject: [PATCH] bitbake: lib/bb/msg: introduce logger_create() function We use this code to set up a logger with colour in a number of different places, so create one function that does this and make some of bitbake's utility scripts use it. (Bitbake rev: b1ba7d1cc8ec33e2d081230287abd07f52136097) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/bin/bitbake-diffsigs | 14 ++------------ bitbake/bin/bitbake-dumpsig | 14 ++------------ bitbake/bin/bitbake-layers | 25 +++++-------------------- bitbake/lib/bb/msg.py | 15 +++++++++++++++ 4 files changed, 24 insertions(+), 44 deletions(-) diff --git a/bitbake/bin/bitbake-diffsigs b/bitbake/bin/bitbake-diffsigs index c087f99bc5..1e3de092af 100755 --- a/bitbake/bin/bitbake-diffsigs +++ b/bitbake/bin/bitbake-diffsigs @@ -30,19 +30,9 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), ' import bb.tinfoil import bb.siggen +import bb.msg -def logger_create(name, output=sys.stderr): - logger = logging.getLogger(name) - console = logging.StreamHandler(output) - format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s") - if output.isatty(): - format.enable_color() - console.setFormatter(format) - logger.addHandler(console) - logger.setLevel(logging.INFO) - return logger - -logger = logger_create('bitbake-diffsigs') +logger = bb.msg.logger_create('bitbake-diffsigs') def find_compare_task(bbhandler, pn, taskname): """ Find the most recent signature files for the specified PN/task and compare them """ diff --git a/bitbake/bin/bitbake-dumpsig b/bitbake/bin/bitbake-dumpsig index 38efd22864..95ebd93546 100755 --- a/bitbake/bin/bitbake-dumpsig +++ b/bitbake/bin/bitbake-dumpsig @@ -29,19 +29,9 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), ' import bb.tinfoil import bb.siggen +import bb.msg -def logger_create(name, output=sys.stderr): - logger = logging.getLogger(name) - console = logging.StreamHandler(output) - format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s") - if output.isatty(): - format.enable_color() - console.setFormatter(format) - logger.addHandler(console) - logger.setLevel(logging.INFO) - return logger - -logger = logger_create('bitbake-dumpsig') +logger = bb.msg.logger_create('bitbake-dumpsig') def find_siginfo_task(bbhandler, pn, taskname): """ Find the most recent signature file for the specified PN/task """ diff --git a/bitbake/bin/bitbake-layers b/bitbake/bin/bitbake-layers index 66fc7ca21f..390ad0503d 100755 --- a/bitbake/bin/bitbake-layers +++ b/bitbake/bin/bitbake-layers @@ -30,26 +30,9 @@ topdir = os.path.dirname(bindir) sys.path[0:0] = [os.path.join(topdir, 'lib')] import bb.tinfoil +import bb.msg -def logger_create(name, output=sys.stderr): - logger = logging.getLogger(name) - loggerhandler = logging.StreamHandler(output) - loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) - logger.addHandler(loggerhandler) - logger.setLevel(logging.INFO) - return logger - -def logger_setup_color(logger, color='auto'): - from bb.msg import BBLogFormatter - console = logging.StreamHandler(sys.stdout) - formatter = BBLogFormatter("%(levelname)s: %(message)s") - console.setFormatter(formatter) - logger.handlers = [console] - if color == 'always' or (color == 'auto' and console.stream.isatty()): - formatter.enable_color() - - -logger = logger_create('bitbake-layers', sys.stdout) +logger = bb.msg.logger_create('bitbake-layers', sys.stdout) def main(): parser = argparse.ArgumentParser( @@ -74,7 +57,9 @@ def main(): elif global_args.quiet: logger.setLevel(logging.ERROR) - logger_setup_color(logger, global_args.color) + # Need to re-run logger_create with color argument + # (will be the same logger since it has the same name) + bb.msg.logger_create('bitbake-layers', output=sys.stdout, color=global_args.color) plugins = [] tinfoil = bb.tinfoil.Tinfoil(tracking=True) diff --git a/bitbake/lib/bb/msg.py b/bitbake/lib/bb/msg.py index b7c39fa133..90b158238f 100644 --- a/bitbake/lib/bb/msg.py +++ b/bitbake/lib/bb/msg.py @@ -201,3 +201,18 @@ def fatal(msgdomain, msg): logger = logging.getLogger("BitBake") logger.critical(msg) sys.exit(1) + +def logger_create(name, output=sys.stderr, level=logging.INFO, preserve_handlers=False, color='auto'): + """Standalone logger creation function""" + logger = logging.getLogger(name) + console = logging.StreamHandler(output) + format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s") + if color == 'always' or (color == 'auto' and output.isatty()): + format.enable_color() + console.setFormatter(format) + if preserve_handlers: + logger.addHandler(console) + else: + logger.handlers = [console] + logger.setLevel(level) + return logger