1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-01 00:59:48 +00:00

bitbake: msg: Add helper to merge logging configs

Adds a function that can be used by UI front ends to merge logging
configuration fragments.

(Bitbake rev: e860d93b76c142fdae90226bc68e4fe6e7b6a9db)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Watt
2020-03-11 18:28:45 -05:00
committed by Richard Purdie
parent c8b2694cd4
commit 361ea84d56
+21 -14
View File
@@ -229,21 +229,10 @@ def has_console_handler(logger):
return True return True
return False return False
def setLoggingConfig(defaultconfig, userconfigfile=None): def mergeLoggingConfig(logconfig, userconfig):
logconfig = copy.deepcopy(defaultconfig) logconfig = copy.deepcopy(logconfig)
userconfig = copy.deepcopy(userconfig)
if userconfigfile:
with open(userconfigfile, 'r') as f:
if userconfigfile.endswith('.yml') or userconfigfile.endswith('.yaml'):
import yaml
userconfig = yaml.load(f)
elif userconfigfile.endswith('.json') or userconfigfile.endswith('.cfg'):
import json
userconfig = json.load(f)
else:
raise BaseException("Unrecognized file format: %s" % userconfigfile)
if userconfig.get('bitbake_merge', True):
# Merge config with the default config # Merge config with the default config
if userconfig.get('version') != logconfig['version']: if userconfig.get('version') != logconfig['version']:
raise BaseException("Bad user configuration version. Expected %r, got %r" % (logconfig['version'], userconfig.get('version'))) raise BaseException("Bad user configuration version. Expected %r, got %r" % (logconfig['version'], userconfig.get('version')))
@@ -285,6 +274,24 @@ def setLoggingConfig(defaultconfig, userconfigfile=None):
for name in set(userconfig["loggers"].keys()) - seen_loggers: for name in set(userconfig["loggers"].keys()) - seen_loggers:
logconfig["loggers"][name] = userconfig["loggers"][name] logconfig["loggers"][name] = userconfig["loggers"][name]
return logconfig
def setLoggingConfig(defaultconfig, userconfigfile=None):
logconfig = copy.deepcopy(defaultconfig)
if userconfigfile:
with open(userconfigfile, 'r') as f:
if userconfigfile.endswith('.yml') or userconfigfile.endswith('.yaml'):
import yaml
userconfig = yaml.load(f)
elif userconfigfile.endswith('.json') or userconfigfile.endswith('.cfg'):
import json
userconfig = json.load(f)
else:
raise BaseException("Unrecognized file format: %s" % userconfigfile)
if userconfig.get('bitbake_merge', True):
logconfig = mergeLoggingConfig(logconfig, userconfig)
else: else:
# Replace the entire default config # Replace the entire default config
logconfig = userconfig logconfig = userconfig