changeset 578:40c085517770

Truncate command output in the logs
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 27 Mar 2013 20:25:50 +0400
parents a9fea2d1d6c8
children da75e774d237
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandSettings.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerCommandSettingsFactory.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java
diffstat 6 files changed, 36 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandSettings.java	Wed Mar 27 19:06:51 2013 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandSettings.java	Wed Mar 27 20:25:50 2013 +0400
@@ -18,6 +18,7 @@
   private boolean myFailWhenStderrNotEmpty = false;
   private String myLogLevel = "debug";
   private Map<String, String> myHgEnv = new HashMap<String, String>();
+  private int myLogOutputLimit = -1;
 
   public CommandSettings() {
 
@@ -89,4 +90,13 @@
   public Map<String, String> getHgEnv() {
     return myHgEnv;
   }
+
+  public int getLogOutputLimit() {
+    return myLogOutputLimit;
+  }
+
+  public CommandSettings setLogOutputLimit(int logOutputLimit) {
+    myLogOutputLimit = logOutputLimit;
+    return this;
+  }
 }
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java	Wed Mar 27 19:06:51 2013 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java	Wed Mar 27 20:25:50 2013 +0400
@@ -32,7 +32,7 @@
     CommandResult res = run(cli, settings.getTimeout(), command, settings.getPrivateData());
     if (settings.isCheckForFailure() || settings.isFailWithNonEmptyStderr())
       res.checkFailure(settings.isFailWithNonEmptyStderr());
-    logCommandOutput(command, res);
+    logCommandOutput(command, res, settings);
     return res;
   }
 
@@ -75,7 +75,12 @@
     }
   }
 
-  private static void logCommandOutput(@NotNull String command, @NotNull CommandResult result) {
-    Loggers.VCS.debug("Command " + command + " output:\n" + result.getStdout());
+  private static void logCommandOutput(@NotNull String command, @NotNull CommandResult result, @NotNull CommandSettings settings) {
+    int limit = settings.getLogOutputLimit();
+    if (limit == -1) {
+      Loggers.VCS.debug("Command " + command + " output:\n" + result.getStdout());
+    } else {
+      Loggers.VCS.debug("Command " + command + " output:\n" + result.getStdout().substring(0, limit) + "...");
+    }
   }
 }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerCommandSettingsFactory.java	Wed Mar 27 19:06:51 2013 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerCommandSettingsFactory.java	Wed Mar 27 20:25:50 2013 +0400
@@ -2,10 +2,17 @@
 
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.CommandSettings;
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.CommandSettingsFactory;
+import org.jetbrains.annotations.NotNull;
 
 public class ServerCommandSettingsFactory implements CommandSettingsFactory {
 
+  private final ServerPluginConfig myConfig;
+
+  public ServerCommandSettingsFactory(@NotNull final ServerPluginConfig config) {
+    myConfig = config;
+  }
+
   public CommandSettings create() {
-    return new CommandSettings().setLogLevel("debug");
+    return new CommandSettings().setLogLevel("debug").setLogOutputLimit(myConfig.getLogOutputLimit());
   }
 }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java	Wed Mar 27 19:06:51 2013 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java	Wed Mar 27 20:25:50 2013 +0400
@@ -23,4 +23,6 @@
   public boolean bookmarksEnabled();
 
   public int getMaxDagNodesCount();
+
+  public int getLogOutputLimit();
 }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java	Wed Mar 27 19:06:51 2013 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java	Wed Mar 27 20:25:50 2013 +0400
@@ -50,6 +50,10 @@
     return TeamCityProperties.getInteger("teamcity.hg.maxDagNodesCount", 0);
   }
 
+  public int getLogOutputLimit() {
+    return TeamCityProperties.getInteger("teamcity.hg.logOutputLimitChars", 2048);
+  }
+
   public boolean detectSubrepoChanges() {
     return TeamCityProperties.getBooleanOrTrue("teamcity.hg.detectSubrepoChanges");
   }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java	Wed Mar 27 19:06:51 2013 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java	Wed Mar 27 20:25:50 2013 +0400
@@ -53,6 +53,10 @@
       public int getMaxDagNodesCount() {
         return 0;
       }
+
+      public int getLogOutputLimit() {
+        return 0;
+      }
     };
   }