From c6c41adb02199b45b8cee2e5ffc7303d0ef4a979 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 16 Nov 2021 14:07:05 +0100 Subject: [PATCH] [logging] Enabled overriding logger config by user config --- flaschengeist/config.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/flaschengeist/config.py b/flaschengeist/config.py index e06fcae..47af03f 100644 --- a/flaschengeist/config.py +++ b/flaschengeist/config.py @@ -41,17 +41,21 @@ def read_configuration(test_config): update_dict(config, test_config) -def configure_app(app, test_config=None): +def configure_logger(): global config - read_configuration(test_config) - - # Always enable this builtin plugins! - update_dict(config, {"auth": {"enabled": True}, "roles": {"enabled": True}, "users": {"enabled": True}}) - + # Read default config logger_config = toml.load(_module_path / "logging.toml") + if "LOGGING" in config: + # Override with user config + update_dict(logger_config, config.get("LOGGING")) + # Check for shortcuts if "level" in config["LOGGING"]: logger_config["loggers"]["flaschengeist"] = {"level": config["LOGGING"]["level"]} + logger_config["handlers"]["console"]["level"] = config["LOGGING"]["level"] + logger_config["handlers"]["file"]["level"] = config["LOGGING"]["level"] + if not config["LOGGING"].get("console", True): + logger_config["handlers"]["console"]["level"] = "CRITICAL" if "file" in config["LOGGING"]: logger_config["root"]["handlers"].append("file") logger_config["handlers"]["file"]["filename"] = config["LOGGING"]["file"] @@ -59,6 +63,14 @@ def configure_app(app, test_config=None): path.parent.mkdir(parents=True, exist_ok=True) logging.config.dictConfig(logger_config) + +def configure_app(app, test_config=None): + global config + read_configuration(test_config) + + # Always enable this builtin plugins! + update_dict(config, {"auth": {"enabled": True}, "roles": {"enabled": True}, "users": {"enabled": True}}) + if "secret_key" not in config["FLASCHENGEIST"]: logger.warning("No secret key was configured, please configure one for production systems!") app.config["SECRET_KEY"] = "0a657b97ef546da90b2db91862ad4e29"