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
