From 8e3c748abf12c5b5649704a139ed2b59a6e6e017 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ale=C5=A1?= Date: Thu, 30 Sep 2021 12:12:10 +0200 Subject: [PATCH] datamodel: logging section added --- manager/etc/knot-resolver/config.yml | 2 + .../datamodel/config_schema.py | 3 + .../datamodel/logging_config.py | 60 +++++++++++++++++++ .../datamodel/lua_template.j2 | 11 ++++ 4 files changed, 76 insertions(+) create mode 100644 manager/knot_resolver_manager/datamodel/logging_config.py diff --git a/manager/etc/knot-resolver/config.yml b/manager/etc/knot-resolver/config.yml index 2296938ae..b05b9e02e 100644 --- a/manager/etc/knot-resolver/config.yml +++ b/manager/etc/knot-resolver/config.yml @@ -7,3 +7,5 @@ network: port: 5353 cache: storage: etc/knot-resolver/cache +logging: + level: debug diff --git a/manager/knot_resolver_manager/datamodel/config_schema.py b/manager/knot_resolver_manager/datamodel/config_schema.py index ea5752898..53195add8 100644 --- a/manager/knot_resolver_manager/datamodel/config_schema.py +++ b/manager/knot_resolver_manager/datamodel/config_schema.py @@ -7,6 +7,7 @@ from typing_extensions import Literal from knot_resolver_manager.datamodel.cache_schema import CacheSchema from knot_resolver_manager.datamodel.dns64_schema import Dns64Schema from knot_resolver_manager.datamodel.dnssec_schema import DnssecSchema +from knot_resolver_manager.datamodel.logging_config import LoggingSchema from knot_resolver_manager.datamodel.lua_schema import LuaSchema from knot_resolver_manager.datamodel.network_schema import NetworkSchema from knot_resolver_manager.datamodel.options_schema import OptionsSchema @@ -33,6 +34,7 @@ class KresConfig(SchemaNode): cache: CacheSchema = CacheSchema() dnssec: Union[bool, DnssecSchema] = True dns64: Union[bool, Dns64Schema] = False + logging: LoggingSchema = LoggingSchema() lua: LuaSchema = LuaSchema() _PREVIOUS_SCHEMA = Raw @@ -43,6 +45,7 @@ class KresConfig(SchemaNode): cache: CacheSchema dnssec: Union[Literal[False], DnssecSchema] dns64: Union[Literal[False], Dns64Schema] + logging: LoggingSchema lua: LuaSchema def _dnssec(self, obj: Raw) -> Union[Literal[False], DnssecSchema]: diff --git a/manager/knot_resolver_manager/datamodel/logging_config.py b/manager/knot_resolver_manager/datamodel/logging_config.py new file mode 100644 index 000000000..266f50a76 --- /dev/null +++ b/manager/knot_resolver_manager/datamodel/logging_config.py @@ -0,0 +1,60 @@ +from typing import List, Optional + +from knot_resolver_manager.utils import SchemaNode +from knot_resolver_manager.utils.types import LiteralEnum + +LogLevelEnum = LiteralEnum["crit", "err", "warning", "notice", "info", "debug"] +LogTargetEnum = LiteralEnum["syslog", "stderr", "stdout"] +LogGroupsEnum = LiteralEnum[ + "system", + "cache", + "io", + "net", + "ta", + "tasent", + "tasign", + "taupd", + "tls", + "gnutls", + "tls_cl", + "xdp", + "zimprt", + "zscann", + "doh", + "dnssec", + "hint", + "plan", + "iterat", + "valdtr", + "resolv", + "select", + "zonecut", + "cookie", + "statis", + "rebind", + "worker", + "policy", + "daf", + "timejm", + "timesk", + "graphi", + "prefil", + "primin", + "srvstl", + "wtchdg", + "nsid", + "dnstap", + "tests", + "dotaut", + "http", + "contrl", + "module", + "devel", + "reqdbg", +] + + +class LoggingSchema(SchemaNode): + level: LogLevelEnum = "notice" + target: Optional[LogTargetEnum] = None + groups: Optional[List[LogGroupsEnum]] = None diff --git a/manager/knot_resolver_manager/datamodel/lua_template.j2 b/manager/knot_resolver_manager/datamodel/lua_template.j2 index 57cbfda08..578238ce3 100644 --- a/manager/knot_resolver_manager/datamodel/lua_template.j2 +++ b/manager/knot_resolver_manager/datamodel/lua_template.j2 @@ -112,6 +112,17 @@ trust_anchors.add_file('{{ taf.file }}', readonly = {{ 'true' if taf.read_only {% endfor %} {% endif %} +-- LOGGING section +log_level('{{ cfg.logging.level }}') +{{ "log_target('"+cfg.logging.target+"')" if cfg.logging.target }} +{% if cfg.logging.groups %} +log_groups({ +{% for g in cfg.logging.groups %} + '{{ g }}', +{% endfor %} +}) +{% endif %} + {% endif %} -- LUA section {% if cfg.lua.script_file %} -- 2.47.3