From: Aleš Mrázek Date: Fri, 29 Aug 2025 15:02:25 +0000 (+0200) Subject: manager: logging: added debug groups for the manager X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Flogging-improvements;p=thirdparty%2Fknot-resolver.git manager: logging: added debug groups for the manager --- diff --git a/doc/_static/config.schema.json b/doc/_static/config.schema.json index a2dd64219..431799e21 100644 --- a/doc/_static/config.schema.json +++ b/doc/_static/config.schema.json @@ -1526,6 +1526,9 @@ "policy-loader", "kresd", "cache-gc", + "files-watchdog", + "metrics", + "server", "system", "cache", "io", diff --git a/python/knot_resolver/datamodel/logging_schema.py b/python/knot_resolver/datamodel/logging_schema.py index 51d0a0e84..188e4394f 100644 --- a/python/knot_resolver/datamodel/logging_schema.py +++ b/python/knot_resolver/datamodel/logging_schema.py @@ -16,6 +16,12 @@ LogGroupsProcessesEnum = Literal[ "cache-gc", ] +LogGroupsManagerEnum = Literal[ + "files-watchdog", + "metrics", + "server", +] + LogGroupsKresdEnum = Literal[ ## Now the LOG_GRP_*_TAG defines, exactly from ../../../lib/log.h "system", @@ -68,7 +74,7 @@ LogGroupsKresdEnum = Literal[ # "reqdbg",... (non-displayed section of the enum) ] -LogGroupsEnum = Literal[LogGroupsProcessesEnum, LogGroupsKresdEnum] +LogGroupsEnum = Literal[LogGroupsProcessesEnum, LogGroupsManagerEnum, LogGroupsKresdEnum] class DnstapSchema(ConfigSchema): diff --git a/python/knot_resolver/datamodel/templates/logging.lua.j2 b/python/knot_resolver/datamodel/templates/logging.lua.j2 index 4afe48c47..b588713cd 100644 --- a/python/knot_resolver/datamodel/templates/logging.lua.j2 +++ b/python/knot_resolver/datamodel/templates/logging.lua.j2 @@ -16,7 +16,9 @@ log_target('{{ cfg.logging.target }}') -- logging.groups log_groups({ {% for g in cfg.logging.groups %} -{% if g not in ["manager", "supervisord", "policy-loader", "kresd", "cache-gc"] %} +{% if g not in ["manager", "supervisord", "policy-loader", "kresd", "cache-gc", + "files-watchdog", "metrics", "server", +] %} '{{ g }}', {% endif %} {% endfor %} diff --git a/python/knot_resolver/datamodel/templates/policy-config.lua.j2 b/python/knot_resolver/datamodel/templates/policy-config.lua.j2 index ec30171d8..ba8acedd6 100644 --- a/python/knot_resolver/datamodel/templates/policy-config.lua.j2 +++ b/python/knot_resolver/datamodel/templates/policy-config.lua.j2 @@ -20,7 +20,10 @@ log_target('{{ cfg.logging.target }}') -- logging.groups log_groups({ {% for g in cfg.logging.groups %} -{% if g not in ["manager", "supervisord", "policy-loader", "kresd", "cache-gc"] %} +{% if g not in [ + "manager", "supervisord", "policy-loader", "kresd", "cache-gc", + "files-watchdog", "metrics", "server", +] %} '{{ g }}', {% endif %} {% endfor %} diff --git a/python/knot_resolver/manager/logging.py b/python/knot_resolver/manager/logging.py index bd1689227..6f8e0d103 100644 --- a/python/knot_resolver/manager/logging.py +++ b/python/knot_resolver/manager/logging.py @@ -5,7 +5,9 @@ import sys from typing import Any from knot_resolver.datamodel.config_schema import KresConfig +from knot_resolver.datamodel.logging_schema import LogGroupsManagerEnum from knot_resolver.manager.config_store import ConfigStore, only_on_real_changes_update +from knot_resolver.utils.modeling.types import get_generic_type_arguments from .constants import LOGGING_LEVEL_STARTUP @@ -81,6 +83,19 @@ async def _set_log_level(config: KresConfig) -> None: logger.warning(f"Changing logging level to '{_level_to_name[target]}'") logging.getLogger().setLevel(target) + # mapping for nonstandard names + groups_map = { + "files-watchdog": "files", + } + # set debug groups + if groups: + package_name = __name__.rsplit(".", 1)[0] + for group in groups: + if group in get_generic_type_arguments(LogGroupsManagerEnum): + logger_name = f"{package_name}.{groups_map.get(group, group)}" + logger.warning(f"Changing logging level of '{logger_name}' group to '{_level_to_name[target]}'") + logging.getLogger(logger_name).setLevel(logging.DEBUG) + async def _set_logging_handler(config: KresConfig) -> None: target = config.logging.target