From d95f286e5853a1ac64d2a18f439c8c7cf512cd28 Mon Sep 17 00:00:00 2001 From: mcilwain Date: Thu, 26 Apr 2018 14:01:20 -0700 Subject: [PATCH] Truncate how much info we log about updated premium lists It doesn't make sense to log all 10K+ lines of a premium list every time it's updated, and indeed that seems to hurt performance, yet that's precisely what we were doing. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=194449836 --- .../server/CreateOrUpdatePremiumListAction.java | 14 ++++++++++++++ .../tools/server/CreatePremiumListAction.java | 2 +- .../tools/server/UpdatePremiumListAction.java | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/java/google/registry/tools/server/CreateOrUpdatePremiumListAction.java b/java/google/registry/tools/server/CreateOrUpdatePremiumListAction.java index 41058fd60..6415f6929 100644 --- a/java/google/registry/tools/server/CreateOrUpdatePremiumListAction.java +++ b/java/google/registry/tools/server/CreateOrUpdatePremiumListAction.java @@ -18,6 +18,7 @@ import com.google.common.collect.ImmutableMap; import google.registry.request.JsonResponse; import google.registry.request.Parameter; import google.registry.util.FormattingLogger; +import java.util.logging.Level; import javax.inject.Inject; /** @@ -27,6 +28,8 @@ public abstract class CreateOrUpdatePremiumListAction implements Runnable { protected static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass(); + private static final int MAX_LOGGING_PREMIUM_LIST_LENGTH = 1000; + public static final String NAME_PARAM = "name"; public static final String INPUT_PARAM = "inputData"; @@ -47,6 +50,17 @@ public abstract class CreateOrUpdatePremiumListAction implements Runnable { } } + /** Logs the premium list data at INFO, truncated if too long. */ + void logInputData() { + if (logger.isLoggable(Level.INFO)) { + logger.infofmt( + "Received the following input data: %s", + (inputData.length() < MAX_LOGGING_PREMIUM_LIST_LENGTH) + ? inputData + : (inputData.substring(0, MAX_LOGGING_PREMIUM_LIST_LENGTH) + "")); + } + } + /** Creates a new premium list or updates an existing one. */ protected abstract void savePremiumList(); } diff --git a/java/google/registry/tools/server/CreatePremiumListAction.java b/java/google/registry/tools/server/CreatePremiumListAction.java index 584ea54d7..392ebd812 100644 --- a/java/google/registry/tools/server/CreatePremiumListAction.java +++ b/java/google/registry/tools/server/CreatePremiumListAction.java @@ -55,7 +55,7 @@ public class CreatePremiumListAction extends CreateOrUpdatePremiumListAction { } logger.infofmt("Saving premium list for TLD %s", name); - logger.infofmt("Got the following input data: %s", inputData); + logInputData(); List inputDataPreProcessed = Splitter.on('\n').omitEmptyStrings().splitToList(inputData); PremiumList premiumList = new PremiumList.Builder().setName(name).build(); diff --git a/java/google/registry/tools/server/UpdatePremiumListAction.java b/java/google/registry/tools/server/UpdatePremiumListAction.java index 1eee150a2..8c736a3d6 100644 --- a/java/google/registry/tools/server/UpdatePremiumListAction.java +++ b/java/google/registry/tools/server/UpdatePremiumListAction.java @@ -51,7 +51,7 @@ public class UpdatePremiumListAction extends CreateOrUpdatePremiumListAction { name); logger.infofmt("Updating premium list for TLD %s", name); - logger.infofmt("Got the following input data: %s", inputData); + logInputData(); List inputDataPreProcessed = Splitter.on('\n').omitEmptyStrings().splitToList(inputData); PremiumList newPremiumList =