Corrected quirks surrounding config format
* Now pickup the correct .config based on the plugin name.
* Non-existing config levels defaults to INFO instead of DEBUG
* Minimize redundancy by promoting log level from subsection
to section name.
Config format now looks accordingly:
[FATAL]
name = com.google.gerrit.server.change.EmailReviewComments
[WARN]
name = org.eclipse.jetty.server.session
name = com.google.gerrit.server.plugins
Change-Id: If4bd214d525299f3761731a9b6622159e18208d3
diff --git a/src/main/java/com/googlesource/gerrit/plugins/loglevel/LogLevel.java b/src/main/java/com/googlesource/gerrit/plugins/loglevel/LogLevel.java
index c7eb58b..85363fb 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/loglevel/LogLevel.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/loglevel/LogLevel.java
@@ -13,6 +13,7 @@
// limitations under the License.
package com.googlesource.gerrit.plugins.loglevel;
+import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.server.config.PluginConfigFactory;
import com.google.inject.Inject;
@@ -23,34 +24,20 @@
public class LogLevel implements LifecycleListener {
private static final Logger log = Logger.getLogger(LogLevel.class);
- private static final String CFG_NAME = "log-level";
-
- private static enum LevelOption {
- ALL,
- TRACE,
- DEBUG,
- INFO,
- WARN,
- ERROR,
- FATAL,
- OFF
- }
-
@Inject private PluginConfigFactory configFactory;
+ @Inject private @PluginName String pluginName;
@Override
public void start() {
log.info("Plug-in started");
- Config config = configFactory.getGlobalPluginConfig(CFG_NAME);
- for (LevelOption level : LevelOption.values()) {
- String[] names = config.getStringList("log-levels", level.name(), "name");
- if (names != null) {
- log.info("Setting log levels to [" + level + "] ");
- for (String name : names) {
- Logger logger = Logger.getLogger(name);
- logger.setLevel(Level.toLevel(level.name()));
- log.info("[" + level + "] " + name);
- }
+ Config config = configFactory.getGlobalPluginConfig(pluginName);
+ for (String cfgLevel : config.getSections()) {
+ String[] names = config.getStringList(cfgLevel, null, "name");
+ for (String name : names) {
+ Logger logger = Logger.getLogger(name);
+ Level level = Level.toLevel(cfgLevel, Level.INFO);
+ logger.setLevel(level);
+ log.info("[" + level.toString() + "] " + name);
}
}
}
diff --git a/src/main/resources/Documentation/log-level.md b/src/main/resources/Documentation/log-level.md
index ed7367a..bb90dd5 100644
--- a/src/main/resources/Documentation/log-level.md
+++ b/src/main/resources/Documentation/log-level.md
@@ -9,11 +9,12 @@
--------
@PLUGIN@.config:
```
-[log-level "FATAL"]
+[FATAL]
name = com.google.gerrit.server.change.EmailReviewComments
-[log-level "INFO"]
- name = com.google.gerrit.common.Version
+[WARN]
+ name = org.eclipse.jetty.server.session
+ name = com.google.gerrit.server.plugins
```
DESCRIPTION