diff options
author | Arne Juul <arnej@yahooinc.com> | 2022-12-07 14:52:17 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2022-12-08 12:08:11 +0000 |
commit | f3f9215917f39badef2d41760b5e868b36108b4f (patch) | |
tree | 6c3f1d867616676ac84e1d31bc28c26609c8c029 /config-model/src/main/java/com/yahoo/vespa/model/builder | |
parent | 5397b656a350bf009c5a04e40a50f30d5d8ed406 (diff) |
translate from user-friendly syntax
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/builder')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java index ecd4baf6b5e..6ca4281a243 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java @@ -21,7 +21,9 @@ import com.yahoo.vespa.model.admin.monitoring.builder.xml.MetricsBuilder; import org.w3c.dom.Element; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Optional; /** @@ -110,11 +112,40 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu } } + private static Map<String, String> defaultLogLevels() { + var m = new HashMap<String,String>(); + m.put("all", "off"); + m.put("error", "on"); + m.put("warning", "on"); + m.put("info", "on"); + m.put("config", "on"); + m.put("event", "on"); + m.put("debug", "off"); + m.put("spam", "off"); + return m; + } + private void addLoggingSpec(ModelElement loggingSpec, Admin admin) { + var currentLevels = defaultLogLevels(); if (loggingSpec == null) return; String componentSpec = loggingSpec.requiredStringAttribute("name"); - String levelsModSpec = loggingSpec.requiredStringAttribute("levels"); - admin.addLogctlCommand(componentSpec, levelsModSpec); + String levels = loggingSpec.requiredStringAttribute("levels"); + var levelsModSpec = new StringBuilder(); + levelsModSpec.append("all=off"); + for (String s : levels.split("[ ,]")) { + if (s.isEmpty()) continue; + String offOn = "on"; + if (s.startsWith("-")) { + offOn = "off"; + s = s.substring(1); + } + if (currentLevels.containsKey(s)) { + levelsModSpec.append(",").append(s).append("=").append(offOn); + } else { + throw new IllegalArgumentException("invalid level '" + s + "' in logging levels: " + levels); + } + } + admin.addLogctlCommand(componentSpec, levelsModSpec.toString()); } void addLoggingSpecs(ModelElement loggingElement, Admin admin) { |