From: Aleš Date: Sat, 8 Jan 2022 23:46:33 +0000 (+0100) Subject: datamodel: logging: advanced debugging config X-Git-Tag: v6.0.0a1~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01dd192d900fc4c0e6b72aadec13295416f1d260;p=thirdparty%2Fknot-resolver.git datamodel: logging: advanced debugging config --- diff --git a/manager/knot_resolver_manager/datamodel/config_schema.py b/manager/knot_resolver_manager/datamodel/config_schema.py index 23b603272..7231cacd0 100644 --- a/manager/knot_resolver_manager/datamodel/config_schema.py +++ b/manager/knot_resolver_manager/datamodel/config_schema.py @@ -69,7 +69,7 @@ class KresConfig(SchemaNode): cache: DNS resolver cache configuration. dnssec: DNSSEC disabling/enabling and configuration. dns64: DNS64 disabling/enabling and configuration. - logging: Logging configuration. + logging: Logging and debugging configuration. lua: Custom Lua configuration. """ diff --git a/manager/knot_resolver_manager/datamodel/logging_config.py b/manager/knot_resolver_manager/datamodel/logging_config.py index cfe65bcdd..0f93871c8 100644 --- a/manager/knot_resolver_manager/datamodel/logging_config.py +++ b/manager/knot_resolver_manager/datamodel/logging_config.py @@ -2,6 +2,7 @@ from typing import List, Optional from typing_extensions import Literal, TypeAlias +from knot_resolver_manager.datamodel.types import TimeUnit from knot_resolver_manager.utils import SchemaNode LogLevelEnum = Literal["crit", "err", "warning", "notice", "info", "debug"] @@ -56,7 +57,23 @@ LogGroupsEnum: TypeAlias = Literal[ ] +class DebuggingSchema(SchemaNode): + assertion_abort: bool = False + assertion_fork: TimeUnit = TimeUnit("5m") + + class LoggingSchema(SchemaNode): + """ + Logging and debugging configuration. + + --- + level: Logging level for all processes. + target: Logging stream target for all processes. + group: List of groups for which 'debug' logging level is set. + debugging: Advanced debugging parameters for Knot Resolver daemon (kresd). + """ + level: LogLevelEnum = "notice" target: Optional[LogTargetEnum] = None groups: Optional[List[LogGroupsEnum]] = None + debugging: DebuggingSchema = DebuggingSchema() diff --git a/manager/knot_resolver_manager/datamodel/templates/logging.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/logging.lua.j2 index 388522a32..62b56f197 100644 --- a/manager/knot_resolver_manager/datamodel/templates/logging.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/logging.lua.j2 @@ -1,10 +1,10 @@ -- logging.level log_level('{{ cfg.logging.level }}') -{% if cfg.logging.target %} +{% if cfg.logging.target -%} -- logging.target log_target('{{ cfg.logging.target }}') -{% endif %} +{%- endif %} {% if cfg.logging.groups %} -- logging.groups @@ -15,4 +15,11 @@ log_groups({ {% endif %} {% endfor %} }) -{% endif %} \ No newline at end of file +{% endif %} + +-- logging.debugging.assertion-abort +debugging.assertion_abort = {{ 'true' if cfg.logging.debugging.assertion_abort else 'false' }} + +-- logging.debugging.assertion-fork +debugging.assertion_fork = {{ cfg.logging.debugging.assertion_fork.millis() }} +