From 3a73782bb61368b83704c53db5b819af03ff859b Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 31 Jul 2019 16:20:18 +0200 Subject: [PATCH] make "Registry values changed by user" logging more compact GitOrigin-RevId: 241365f2d8f366c8fab2eba1a4bac48b9824556d --- .../openapi/util/registry/RegistryState.java | 24 ++++++++++++------- .../openapi/util/registry/Registry.java | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/util/registry/RegistryState.java b/platform/platform-api/src/com/intellij/openapi/util/registry/RegistryState.java index 59d4abc407de..6f47289cb0e9 100644 --- a/platform/platform-api/src/com/intellij/openapi/util/registry/RegistryState.java +++ b/platform/platform-api/src/com/intellij/openapi/util/registry/RegistryState.java @@ -8,17 +8,17 @@ import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.ArrayUtilRt; import com.intellij.util.SmartList; import org.jdom.Element; import org.jetbrains.annotations.NotNull; +import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; @State(name = "Registry", storages = @Storage("ide.general.xml")) -public final class RegistryState implements PersistentStateComponent { +final class RegistryState implements PersistentStateComponent { private static final Logger LOG = Logger.getInstance(RegistryState.class); @Override @@ -30,13 +30,19 @@ public final class RegistryState implements PersistentStateComponent { public void loadState(@NotNull Element state) { Registry.getInstance().loadState(state); - SortedMap userProperties = new TreeMap<>(Registry.getInstance().getUserProperties()); - userProperties.remove("ide.firstStartup"); - if (!userProperties.isEmpty()) { - LOG.info("Registry values changed by user:"); - for (Map.Entry entry : userProperties.entrySet()) { - LOG.info(" " + entry.getKey() + " = " + entry.getValue()); + Map userProperties = Registry.getInstance().getUserProperties(); + if (userProperties.size() > (userProperties.containsKey("ide.firstStartup") ? 1 : 0)) { + String[] keys = ArrayUtilRt.toStringArray(userProperties.keySet()); + Arrays.sort(keys); + StringBuilder builder = new StringBuilder("Registry values changed by user: "); + for (String key : keys) { + if ("ide.firstStartup".equals(key)) { + continue; + } + + builder.append(key).append(" = ").append(userProperties.get(key)).append(", "); } + LOG.info(builder.substring(0, builder.length() - 2)); } // make logging for experimental features here to have registry + experiments together in the log file diff --git a/platform/util/src/com/intellij/openapi/util/registry/Registry.java b/platform/util/src/com/intellij/openapi/util/registry/Registry.java index a727711027a3..1316e131ed09 100644 --- a/platform/util/src/com/intellij/openapi/util/registry/Registry.java +++ b/platform/util/src/com/intellij/openapi/util/registry/Registry.java @@ -19,7 +19,7 @@ import java.util.concurrent.ConcurrentMap; * Provides a UI to configure internal settings of the IDE. Plugins can provide their own registry keys using the * {@code } extension point (see {@link com.intellij.openapi.util.registry.RegistryKeyBean} for more details). */ -public class Registry { +public final class Registry { private static Reference ourBundle; @NonNls