Skip to content

Commit 694a13d

Browse files
committed
manager: logging: added debug groups for the manager
1 parent 07efb43 commit 694a13d

File tree

5 files changed

+32
-3
lines changed

5 files changed

+32
-3
lines changed

doc/_static/config.schema.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1527,6 +1527,9 @@
15271527
"policy-loader",
15281528
"kresd",
15291529
"cache-gc",
1530+
"files-watchdog",
1531+
"metrics",
1532+
"server",
15301533
"system",
15311534
"cache",
15321535
"io",

python/knot_resolver/datamodel/logging_schema.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616
"cache-gc",
1717
]
1818

19+
LogGroupsManagerEnum = Literal[
20+
"files-watchdog",
21+
"metrics",
22+
"server",
23+
]
24+
1925
LogGroupsKresdEnum = Literal[
2026
## Now the LOG_GRP_*_TAG defines, exactly from ../../../lib/log.h
2127
"system",
@@ -68,7 +74,7 @@
6874
# "reqdbg",... (non-displayed section of the enum)
6975
]
7076

71-
LogGroupsEnum = Literal[LogGroupsProcessesEnum, LogGroupsKresdEnum]
77+
LogGroupsEnum = Literal[LogGroupsProcessesEnum, LogGroupsManagerEnum, LogGroupsKresdEnum]
7278

7379

7480
class DnstapSchema(ConfigSchema):

python/knot_resolver/datamodel/templates/logging.lua.j2

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ log_target('{{ cfg.logging.target }}')
1616
-- logging.groups
1717
log_groups({
1818
{% for g in cfg.logging.groups %}
19-
{% if g not in ["manager", "supervisord", "policy-loader", "kresd", "cache-gc"] %}
19+
{% if g not in ["manager", "supervisord", "policy-loader", "kresd", "cache-gc",
20+
"files-watchdog", "metrics", "server",
21+
] %}
2022
'{{ g }}',
2123
{% endif %}
2224
{% endfor %}

python/knot_resolver/datamodel/templates/policy-loader.lua.j2

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ log_target('{{ cfg.logging.target }}')
2020
-- logging.groups
2121
log_groups({
2222
{% for g in cfg.logging.groups %}
23-
{% if g not in ["manager", "supervisord", "policy-loader", "kresd", "cache-gc"] %}
23+
{% if g not in [
24+
"manager", "supervisord", "policy-loader", "kresd", "cache-gc",
25+
"files-watchdog", "metrics", "server",
26+
] %}
2427
'{{ g }}',
2528
{% endif %}
2629
{% endfor %}

python/knot_resolver/manager/logger.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import sys
55

66
from knot_resolver.datamodel.config_schema import KresConfig
7+
from knot_resolver.datamodel.logging_schema import LogGroupsManagerEnum
78
from knot_resolver.manager.config_store import ConfigStore, only_on_real_changes_update
9+
from knot_resolver.utils.modeling.types import get_generic_type_arguments
810

911
from .constants import LOGGING_LEVEL_STARTUP
1012

@@ -67,6 +69,19 @@ async def _set_log_level(config: KresConfig) -> None:
6769
logger.warning(f"Changing logging level to '{_level_to_name[target]}'")
6870
logging.getLogger().setLevel(target)
6971

72+
# mapping for nonstandard names
73+
groups_map = {
74+
"files-watchdog": "files",
75+
}
76+
# set debug groups
77+
if groups:
78+
package_name = __name__.rsplit(".", 1)[0]
79+
for group in groups:
80+
if group in get_generic_type_arguments(LogGroupsManagerEnum):
81+
logger_name = f"{package_name}.{groups_map.get(group, group)}"
82+
logger.warning(f"Changing logging level of '{logger_name}' group to '{_level_to_name[target]}'")
83+
logging.getLogger(logger_name).setLevel(logging.DEBUG)
84+
7085

7186
async def _set_logging_handler(config: KresConfig) -> None:
7287
target = config.logging.target

0 commit comments

Comments
 (0)