# HG changeset patch # User Dmitry Neverov # Date 1364401550 -14400 # Node ID 40c0855177702a4e5d66f76ce01907a3f46c022e # Parent a9fea2d1d6c86df75e5a2f007757857b0d2cddf6 Truncate command output in the logs diff -r a9fea2d1d6c8 -r 40c085517770 mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandSettings.java --- 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 myHgEnv = new HashMap(); + private int myLogOutputLimit = -1; public CommandSettings() { @@ -89,4 +90,13 @@ public Map getHgEnv() { return myHgEnv; } + + public int getLogOutputLimit() { + return myLogOutputLimit; + } + + public CommandSettings setLogOutputLimit(int logOutputLimit) { + myLogOutputLimit = logOutputLimit; + return this; + } } diff -r a9fea2d1d6c8 -r 40c085517770 mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java --- 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) + "..."); + } } } diff -r a9fea2d1d6c8 -r 40c085517770 mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerCommandSettingsFactory.java --- 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()); } } diff -r a9fea2d1d6c8 -r 40c085517770 mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java --- 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(); } diff -r a9fea2d1d6c8 -r 40c085517770 mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java --- 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"); } diff -r a9fea2d1d6c8 -r 40c085517770 mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java --- 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; + } }; }