ChangeFiles: Limit the number of changed files that are written to trace

If there are too many changed files, the log line gets too big. At
Google this leads to the line being dropped from the server logs.

Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: I1759c5bac8eaee5a75bbf59fe86b7319a110aba4
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/ChangedFiles.java b/java/com/google/gerrit/plugins/codeowners/backend/ChangedFiles.java
index 1e76b05..787e452 100644
--- a/java/com/google/gerrit/plugins/codeowners/backend/ChangedFiles.java
+++ b/java/com/google/gerrit/plugins/codeowners/backend/ChangedFiles.java
@@ -59,6 +59,8 @@
 public class ChangedFiles {
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
+  private static int MAX_CHANGED_FILES_TO_LOG = 25;
+
   private final GitRepositoryManager repoManager;
   private final CodeOwnersPluginConfiguration codeOwnersPluginConfiguration;
   private final PatchListCache patchListCache;
@@ -203,7 +205,14 @@
       List<DiffEntry> diffEntries = diffFormatter.scan(baseCommit, revCommit);
       ImmutableSet<ChangedFile> changedFiles =
           diffEntries.stream().map(ChangedFile::create).collect(toImmutableSet());
-      logger.atFine().log("changed files = %s", changedFiles);
+      if (changedFiles.size() <= MAX_CHANGED_FILES_TO_LOG) {
+        logger.atFine().log("changed files = %s", changedFiles);
+      } else {
+        logger.atFine().log(
+            "changed files = %s (and %d more)",
+            changedFiles.asList().subList(0, MAX_CHANGED_FILES_TO_LOG),
+            changedFiles.size() - MAX_CHANGED_FILES_TO_LOG);
+      }
       return changedFiles;
     }
   }