listen:
ip: 127.0.0.1
port: 5000
- log-level: DEBUG
rundir: etc/knot-resolver/runtime
management:
listen:
unix-socket: /run/knot-resolver/manager.sock
- log-level: DEBUG
rundir: /run/knot-resolver
listen:
ip: 127.0.0.1
port: 5001
- log-level: DEBUG
rundir: integration/run
cache:
storage: cache
-
+logging:
+ level: debug
LogLevelEnum = LiteralEnum["crit", "err", "warning", "notice", "info", "debug"]
LogTargetEnum = LiteralEnum["syslog", "stderr", "stdout"]
LogGroupsEnum = LiteralEnum[
+ "manager",
"system",
"cache",
"io",
{% if cfg.logging.groups %}
log_groups({
{% for g in cfg.logging.groups %}
+{% if g != "manager" %}
'{{ g }}',
+{% endif %}
{% endfor %}
})
{% endif %}
BackendEnum = LiteralEnum["auto", "systemd", "supervisord"]
-LogLevelEnum = LiteralEnum["CRITICAL", "FATAL", "ERROR", "WARN", "WARNING", "INFO", "DEBUG"]
class ManagementSchema(SchemaNode):
listen: Listen = Listen({"unix-socket": "./manager.sock"})
backend: BackendEnum = "auto"
rundir: AnyPath = AnyPath(".")
- log_level: LogLevelEnum = "INFO"
class WebmgmtSchema(SchemaNode):
)
def _set_log_level(self, config: KresConfig):
- if self.log_level != config.server.management.log_level:
+
+ levels_map = {
+ "crit": "CRITICAL",
+ "err": "ERROR",
+ "warning": "WARNING",
+ "notice": "WARNING",
+ "info": "INFO",
+ "debug": "DEBUG",
+ }
+
+ target = levels_map[config.logging.level]
+ if config.logging.groups and "manager" in config.logging.groups:
+ target = "DEBUG"
+
+ if self.log_level != target:
# expects one existing log handler on the root
h = logging.getLogger().handlers
assert len(h) == 1
- target = config.server.management.log_level
- logger.warning(f"Changing log level to '{target}'")
+ logger.warning(f"Changing logging level to '{target}'")
h[0].setLevel(target)
self.log_level = target