Extra logging when local ref-db is misaligned with shared-db

Display extra details of the local SHA1 vs shared SHA1 when
they do not match the expected values.

Change-Id: I9a75cf26230f3c9978985c0fd23251ccb22c5330
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
index afd3766..efbf390 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
@@ -58,10 +58,22 @@
 
       // Assuming this is a delete node NULL_REF
       if (valueInZk == null) {
+        logger.atInfo().log(
+            "%s:%s not found in Zookeeper, assumed as delete node NULL_REF",
+            project, ref.getName());
         return false;
       }
 
-      return readObjectId(valueInZk).equals(ref.getObjectId());
+      ObjectId objectIdInSharedRefDb = readObjectId(valueInZk);
+      Boolean isUpToDate = objectIdInSharedRefDb.equals(ref.getObjectId());
+
+      if (!isUpToDate) {
+        logger.atWarning().log(
+            "%s:%s is out of sync: local=%s zk=%s",
+            project, ref.getName(), ref.getObjectId(), objectIdInSharedRefDb);
+      }
+
+      return isUpToDate;
     } catch (Exception e) {
       throw new SharedLockException(project, ref.getName(), e);
     }