gc_log is no longer overwritten when rotated

The two loggers were creating different appenders, interfering with
each other. Currently, the `GarbageCollectionRunner.java ` log entry is
only written when the log file is rotated. Furthermore it overwrites the
extremely valuable output from `GarbageCollection.java`.

Bug: Issue 396060191
Release-Notes: gc_log is no longer overwritten when rotated
Change-Id: Idafb09802916e4ae4d1a26c8ec9224812d40ea0c
diff --git a/java/com/google/gerrit/server/git/GarbageCollectionLogFile.java b/java/com/google/gerrit/server/git/GarbageCollectionLogFile.java
index b711708..19f7965 100644
--- a/java/com/google/gerrit/server/git/GarbageCollectionLogFile.java
+++ b/java/com/google/gerrit/server/git/GarbageCollectionLogFile.java
@@ -21,6 +21,7 @@
 import com.google.gerrit.server.util.SystemLog;
 import com.google.inject.Inject;
 import java.nio.file.Path;
+import org.apache.log4j.Appender;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.log4j.PatternLayout;
@@ -46,19 +47,19 @@
   }
 
   private static void initLogSystem(Path logdir, boolean rotate) {
-    initGcLogger(logdir, rotate, getLogger(GarbageCollection.class));
-    initGcLogger(logdir, rotate, getLogger(GarbageCollectionRunner.class));
+    Appender appender =
+        SystemLog.createAppender(logdir, LOG_NAME, new PatternLayout("[%d] %-5p %x: %m%n"), rotate);
+    initGcLogger(getLogger(GarbageCollection.class), appender);
+    initGcLogger(getLogger(GarbageCollectionRunner.class), appender);
   }
 
   private static Logger getLogger(Class<?> clazz) {
     return LogManager.getLogger(Platform.getBackend(clazz.getName()).getLoggerName());
   }
 
-  private static void initGcLogger(Path logdir, boolean rotate, Logger gcLogger) {
+  private static void initGcLogger(Logger gcLogger, Appender appender) {
     gcLogger.removeAllAppenders();
-    gcLogger.addAppender(
-        SystemLog.createAppender(
-            logdir, LOG_NAME, new PatternLayout("[%d] %-5p %x: %m%n"), rotate));
+    gcLogger.addAppender(appender);
     gcLogger.setAdditivity(false);
   }
 }