scriptutils: Add support for specify stream on logger_create
PATCH 1/3 scriptutils: Add support for specify stream on logger_create
It is a good idea to let the script to choose what stream wants to dump the logging output.
[YOCTO #11160]
Signed-off-by Aníbal Limón <[email protected]>
--- scripts/lib/scriptutils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
scripts/lib/scriptutils.py +2 -2
@@ -22,9 +22,9 @@ import glob import argparse import subprocess -def logger_create(name): +def logger_create(name, stream=None): logger = logging.getLogger(name) - loggerhandler = logging.StreamHandler() + loggerhandler = logging.StreamHandler(stream=stream) loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) logger.addHandler(loggerhandler) logger.setLevel(logging.INFO)
Signature · 1 line
2.1.4
PATCH 2/3 scripts/yocto-compat-layer.py: Dump log to stdout instead of stderr
The common unix tools uses stdout as standard for log output, by default python logging uses stderr if not stream is specified.
[YOCTO #11160]
Signed-off-by Aníbal Limón <[email protected]>
--- scripts/yocto-compat-layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/yocto-compat-layer.py +1 -1
@@ -31,7 +31,7 @@ DEFAULT_OUTPUT_LOG = '%s-%s.log' % (PROGNAME, OUTPUT_LOG_LINK = "%s.log" % PROGNAME CASES_PATHS = [os.path.join(os.path.abspath(os.path.dirname(__file__)), 'lib', 'compatlayer', 'cases')] -logger = scriptutils.logger_create(PROGNAME) +logger = scriptutils.logger_create(PROGNAME, stream=sys.stdout) def test_layer_compatibility(td, layer): from compatlayer.context import CompatLayerTestContext
Signature · 1 line
2.1.4
PATCH 3/3 scripts/yocto-compat-layer.py: Make output log argument optional
In reply to Aníbal LimónOnly create a log file when --output-log option is specified, since logger is dumping to stdout by default is better to let the user decide if a log needs to be created.
[YOCTO #11160]
Signed-off-by Aníbal Limón <[email protected]>
--- scripts/yocto-compat-layer.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-)
scripts/yocto-compat-layer.py +5 -12
@@ -26,9 +26,6 @@ from compatlayer import LayerType, detect_layers, add_layer, get_signatures from oeqa.utils.commands import get_bb_vars PROGNAME = 'yocto-compat-layer' -DEFAULT_OUTPUT_LOG = '%s-%s.log' % (PROGNAME, - time.strftime("%Y%m%d%H%M%S")) -OUTPUT_LOG_LINK = "%s.log" % PROGNAME CASES_PATHS = [os.path.join(os.path.abspath(os.path.dirname(__file__)), 'lib', 'compatlayer', 'cases')] logger = scriptutils.logger_create(PROGNAME, stream=sys.stdout)
@@ -49,9 +46,7 @@ def main(): parser.add_argument('layers', metavar='LAYER_DIR', nargs='+', help='Layer to test compatibility with Yocto Project') parser.add_argument('-o', '--output-log', - help='Output log default: %s' % DEFAULT_OUTPUT_LOG, - action='store', default=DEFAULT_OUTPUT_LOG) - + help='File to output log (optional)', action='store') parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true') parser.add_argument('-q', '--quiet', help='Print only errors',
@@ -63,16 +58,14 @@ def main(): args = parser.parse_args() - fh = logging.FileHandler(args.output_log) - fh.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) - logger.addHandler(fh) + if args.output_log: + fh = logging.FileHandler(args.output_log) + fh.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) + logger.addHandler(fh) if args.debug: logger.setLevel(logging.DEBUG) elif args.quiet: logger.setLevel(logging.ERROR) - if os.path.exists(OUTPUT_LOG_LINK): - os.unlink(OUTPUT_LOG_LINK) - os.symlink(args.output_log, OUTPUT_LOG_LINK) if not 'BUILDDIR' in os.environ: logger.error("You must source the environment before run this script.")
Signature · 1 line
2.1.4