Add a debug log while insert/replace change index operation

Add a debug log while indexing a change doc, which helps in debugging
issues when the ES ends up with a stale change doc.

Change-Id: Id920dec50f0bf3e48dc2b64b671c4f8bc20023f9
diff --git a/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java b/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
index 8504e16..b6121e8 100644
--- a/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
+++ b/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
@@ -17,6 +17,7 @@
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableSet;
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.elasticsearch.ElasticMapping.Mapping;
 import com.google.gerrit.elasticsearch.bulk.BulkRequest;
 import com.google.gerrit.elasticsearch.bulk.IndexRequest;
@@ -52,6 +53,8 @@
 /** Secondary index implementation using Elasticsearch. */
 class ElasticChangeIndex extends AbstractElasticIndex<Change.Id, ChangeData>
     implements ChangeIndex {
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
+
   static class ChangeMapping {
     final Mapping changes;
     final Mapping openChanges;
@@ -99,6 +102,17 @@
     BulkRequest bulk =
         new IndexRequest(getId(cd), indexName).add(new UpdateRequest<>(schema, cd, skipFields));
 
+    if (logger.atFine().isEnabled()) {
+      String metaRevision = null;
+      try {
+        metaRevision = cd.metaRevisionOrThrow().name();
+      } catch (Exception ignored) {
+      }
+      logger.atFine().log(
+          "Indexing: change: %s, status: %s, meta revision: %s",
+          cd.change().currentPatchSetId(), cd.change().getStatus(), metaRevision);
+    }
+
     String uri = getURI(BULK);
     Response response = postRequestWithRefreshParam(uri, bulk);
     int statusCode = response.getStatusLine().getStatusCode();