Get rid of the remaining usages of the slf4j

Change-Id: I192d217ae3e2cffe63578806cbbf8e288533de0c
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/JGroupsForwarder.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/JGroupsForwarder.java
index d1ca7b3..030c298 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/JGroupsForwarder.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/JGroupsForwarder.java
@@ -18,6 +18,7 @@
 import com.ericsson.gerrit.plugins.highavailability.Configuration.JGroups;
 import com.ericsson.gerrit.plugins.highavailability.forwarder.Forwarder;
 import com.ericsson.gerrit.plugins.highavailability.forwarder.IndexEvent;
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.server.events.Event;
 import com.google.gson.Gson;
 import com.google.inject.Inject;
@@ -32,12 +33,10 @@
 import org.jgroups.blocks.ResponseMode;
 import org.jgroups.util.Rsp;
 import org.jgroups.util.RspList;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @Singleton
 public class JGroupsForwarder implements Forwarder {
-  private static final Logger log = LoggerFactory.getLogger(JGroupsForwarder.class);
+  private static final FluentLogger log = FluentLogger.forEnclosingClass();
 
   private final MessageDispatcher dispatcher;
   private final JGroups jgroupsConfig;
@@ -112,13 +111,13 @@
       try {
         Thread.sleep(jgroupsConfig.retryInterval());
       } catch (InterruptedException ie) {
-        log.error("{} was interrupted, giving up", cmd, ie);
+        log.atSevere().withCause(ie).log("%s was interrupted, giving up", cmd);
         Thread.currentThread().interrupt();
         return false;
       }
     }
 
-    log.error("Forwarding {} failed", cmd);
+    log.atSevere().log("Forwarding %s failed", cmd);
     return false;
   }
 
@@ -128,43 +127,42 @@
       logJGroupsInfo();
 
       if (dispatcher.getChannel().getView().size() < 2) {
-        log.debug("Less than two members in cluster, not sending {}", json);
+        log.atFine().log("Less than two members in cluster, not sending %s", json);
         return false;
       }
 
-      log.debug("Sending {}", json);
+      log.atFine().log("Sending %s", json);
       RequestOptions options =
           new RequestOptions(ResponseMode.GET_FIRST, jgroupsConfig.retryInterval());
       RspList<Object> list = dispatcher.castMessage(null, new ObjectMessage(null, json), options);
 
-      log.debug("Received response list length = {}", list.size());
+      log.atFine().log("Received response list length = %s", list.size());
       if (list.isEmpty()) {
         return false;
       }
 
       for (Entry<Address, Rsp<Object>> e : list.entrySet()) {
-        log.debug("Response object {}", e);
+        log.atFine().log("Response object %s", e);
         if (!Boolean.TRUE.equals(e.getValue().getValue())) {
-          log.warn(
-              "Received a non TRUE response from receiver {}: {}",
-              e.getKey(),
-              e.getValue().getValue());
+          log.atWarning().log(
+              "Received a non TRUE response from receiver %s: %s",
+              e.getKey(), e.getValue().getValue());
           return false;
         }
       }
-      log.debug("Successfully sent message {}", json);
+      log.atFine().log("Successfully sent message %s", json);
       return true;
     } catch (Exception e) {
-      log.warn("Forwarding {} failed", json, e);
+      log.atWarning().withCause(e).log("Forwarding %s failed", json);
       return false;
     }
   }
 
   private void logJGroupsInfo() {
-    log.debug("My address: {}", dispatcher.getChannel().getAddress());
+    log.atFine().log("My address: %s", dispatcher.getChannel().getAddress());
     List<Address> members = dispatcher.getChannel().getView().getMembers();
     for (Address m : members) {
-      log.debug("Member: {}", m);
+      log.atFine().log("Member: %s", m);
     }
   }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageDispatcherProvider.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageDispatcherProvider.java
index 4b2fff5..99d5c0c 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageDispatcherProvider.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageDispatcherProvider.java
@@ -17,6 +17,7 @@
 import com.ericsson.gerrit.plugins.highavailability.Configuration;
 import com.ericsson.gerrit.plugins.highavailability.Configuration.JGroups;
 import com.ericsson.gerrit.plugins.highavailability.peers.jgroups.InetAddressFinder;
+import com.google.common.flogger.FluentLogger;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 import com.google.inject.ProvisionException;
@@ -26,12 +27,10 @@
 import org.jgroups.JChannel;
 import org.jgroups.blocks.MessageDispatcher;
 import org.jgroups.blocks.RequestHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @Singleton
 public class MessageDispatcherProvider implements Provider<MessageDispatcher> {
-  private static Logger log = LoggerFactory.getLogger(MessageDispatcherProvider.class);
+  private static FluentLogger log = FluentLogger.forEnclosingClass();
 
   private final InetAddressFinder finder;
   private final JGroups jgroupsConfig;
@@ -60,7 +59,7 @@
       }
       channel.setDiscardOwnMessages(true);
       channel.connect(jgroupsConfig.clusterName());
-      log.info("Succesfully joined jgroups cluster {}", channel.getClusterName());
+      log.atInfo().log("Succesfully joined jgroups cluster %s", channel.getClusterName());
       MessageDispatcher dispatcher = new MessageDispatcher(channel, requestHandler);
       return dispatcher;
     } catch (Exception e) {
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageProcessor.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageProcessor.java
index d430b41..54096ac 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageProcessor.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageProcessor.java
@@ -23,6 +23,7 @@
 import com.ericsson.gerrit.plugins.highavailability.forwarder.ForwardedIndexChangeHandler;
 import com.ericsson.gerrit.plugins.highavailability.forwarder.ForwardedIndexingHandler.Operation;
 import com.ericsson.gerrit.plugins.highavailability.forwarder.ForwardedProjectListUpdateHandler;
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.entities.Account;
 import com.google.gerrit.server.events.Event;
 import com.google.gerrit.server.permissions.PermissionBackendException;
@@ -33,12 +34,10 @@
 import java.util.Optional;
 import org.jgroups.Message;
 import org.jgroups.blocks.RequestHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @Singleton
 public class MessageProcessor implements RequestHandler {
-  private static final Logger log = LoggerFactory.getLogger(MessageProcessor.class);
+  private static final FluentLogger log = FluentLogger.forEnclosingClass();
 
   private final Gson gson;
   private final ForwardedIndexChangeHandler indexChangeHandler;
@@ -80,14 +79,11 @@
           ForwardedIndexChangeHandler handler =
               indexChange.isBatch() ? indexBatchChangeHandler : indexChangeHandler;
           handler.index(indexChange.getId(), op, Optional.empty());
-          log.debug(
-              "Change index {} on change {} done", op.name().toLowerCase(), indexChange.getId());
+          log.atFine().log(
+              "Change index %s on change %s done", op.name().toLowerCase(), indexChange.getId());
         } catch (Exception e) {
-          log.error(
-              "Change index {} on change {} failed",
-              op.name().toLowerCase(),
-              indexChange.getId(),
-              e);
+          log.atSevere().withCause(e).log(
+              "Change index %s on change %s failed", op.name().toLowerCase(), indexChange.getId());
           return false;
         }
 
@@ -96,9 +92,10 @@
         try {
           indexAccountHandler.index(
               Account.id(indexAccount.getId()), Operation.INDEX, Optional.empty());
-          log.debug("Account index update on account {} done", indexAccount.getId());
+          log.atFine().log("Account index update on account %s done", indexAccount.getId());
         } catch (IOException e) {
-          log.error("Account index update on account {} failed", indexAccount.getId(), e);
+          log.atSevere().withCause(e).log(
+              "Account index update on account %s failed", indexAccount.getId());
           return false;
         }
 
@@ -106,16 +103,16 @@
         EvictCache evictCommand = (EvictCache) cmd;
         cacheEvictionHandler.evict(
             CacheEntry.from(evictCommand.getCacheName(), evictCommand.getKeyJson()));
-        log.debug(
-            "Cache eviction {} {} done", evictCommand.getCacheName(), evictCommand.getKeyJson());
+        log.atFine().log(
+            "Cache eviction %s %s done", evictCommand.getCacheName(), evictCommand.getKeyJson());
 
       } else if (cmd instanceof PostEvent) {
         Event event = ((PostEvent) cmd).getEvent();
         try {
           eventHandler.dispatch(event);
-          log.debug("Dispatching event {} done", event);
+          log.atFine().log("Dispatching event %s done", event);
         } catch (PermissionBackendException e) {
-          log.error("Dispatching event {} failed", event, e);
+          log.atSevere().withCause(e).log("Dispatching event %s failed", event);
           return false;
         }
 
@@ -149,10 +146,10 @@
   private Command getCommand(Message msg) {
     try {
       String s = (String) msg.getObject();
-      log.debug("Received message: {}", s);
+      log.atFine().log("Received message: %s", s);
       return gson.fromJson(s, Command.class);
     } catch (RuntimeException e) {
-      log.error("Error parsing message {}", msg.getObject(), e);
+      log.atSevere().withCause(e).log("Error parsing message %s", msg.getObject());
       throw e;
     }
   }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/OnStartStop.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/OnStartStop.java
index 1edf4ee..fad84f2 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/OnStartStop.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/OnStartStop.java
@@ -14,17 +14,16 @@
 
 package com.ericsson.gerrit.plugins.highavailability.forwarder.jgroups;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 import java.io.IOException;
 import org.jgroups.blocks.MessageDispatcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @Singleton
 public class OnStartStop implements LifecycleListener {
-  private static final Logger log = LoggerFactory.getLogger(OnStartStop.class);
+  private static final FluentLogger log = FluentLogger.forEnclosingClass();
 
   private final MessageDispatcher dispatcher;
 
@@ -38,12 +37,12 @@
 
   @Override
   public void stop() {
-    log.info("Closing JChannel");
+    log.atInfo().log("Closing JChannel");
     dispatcher.getChannel().close();
     try {
       dispatcher.close();
     } catch (IOException e) {
-      log.error("Could not close the MessageDispatcher", e);
+      log.atSevere().withCause(e).log("Could not close the MessageDispatcher");
     }
   }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/JGroupsPeerInfoProvider.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/JGroupsPeerInfoProvider.java
index fe421d0..776a0a4 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/JGroupsPeerInfoProvider.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/JGroupsPeerInfoProvider.java
@@ -47,13 +47,6 @@
 public class JGroupsPeerInfoProvider
     implements Receiver, Provider<Set<PeerInfo>>, LifecycleListener {
   private static final FluentLogger log = FluentLogger.forEnclosingClass();
-  private static final String JGROUPS_LOG_FACTORY_PROPERTY = "jgroups.logging.log_factory_class";
-
-  static {
-    if (System.getProperty(JGROUPS_LOG_FACTORY_PROPERTY) == null) {
-      System.setProperty(JGROUPS_LOG_FACTORY_PROPERTY, SLF4JLogFactory.class.getName());
-    }
-  }
 
   private final Configuration.JGroups jgroupsConfig;
   private final InetAddressFinder finder;
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/SLF4JLog.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/SLF4JLog.java
deleted file mode 100644
index 43b6f9c..0000000
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/SLF4JLog.java
+++ /dev/null
@@ -1,176 +0,0 @@
-// Copyright (C) 2017 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.ericsson.gerrit.plugins.highavailability.peers.jgroups;
-
-import org.jgroups.logging.Log;
-import org.slf4j.Logger;
-
-/**
- * A {@link Log} implementation which forwards all calls to the JGroups specific logging interface
- * to an instance of a SLF4J {@link Logger}. Only {@link #setLevel(String)} and {@link #getLevel()}
- * have no counterparts in SLF4J and are implemented as NOPs. Instances of this class are created by
- * {@link SLF4JLogFactory}. See the documentation of {@link SLF4JLogFactory} on how to configure
- * JGroups to use this class.
- *
- * @author christian.halstrick@sap.com
- */
-public class SLF4JLog implements Log {
-  private final Logger logger;
-
-  public SLF4JLog(Logger log) {
-    this.logger = log;
-  }
-
-  @Override
-  public boolean isFatalEnabled() {
-    return logger.isErrorEnabled();
-  }
-
-  @Override
-  public boolean isErrorEnabled() {
-    return logger.isErrorEnabled();
-  }
-
-  @Override
-  public boolean isWarnEnabled() {
-    return logger.isWarnEnabled();
-  }
-
-  @Override
-  public boolean isInfoEnabled() {
-    return logger.isInfoEnabled();
-  }
-
-  @Override
-  public boolean isDebugEnabled() {
-    return logger.isDebugEnabled();
-  }
-
-  @Override
-  public boolean isTraceEnabled() {
-    return logger.isTraceEnabled();
-  }
-
-  @Override
-  public void fatal(String msg) {
-    logger.error(msg);
-  }
-
-  @Override
-  public void fatal(String msg, Object... args) {
-    logger.error(convMsg(msg, args));
-  }
-
-  @Override
-  public void fatal(String msg, Throwable throwable) {
-    logger.error(msg, throwable);
-  }
-
-  @Override
-  public void error(String msg) {
-    logger.error(msg);
-  }
-
-  @Override
-  public void error(String format, Object... args) {
-    if (isErrorEnabled()) {
-      logger.error(convMsg(format, args));
-    }
-  }
-
-  @Override
-  public void error(String msg, Throwable throwable) {
-    logger.error(msg, throwable);
-  }
-
-  @Override
-  public void warn(String msg) {
-    logger.warn(msg);
-  }
-
-  @Override
-  public void warn(String msg, Object... args) {
-    if (isWarnEnabled()) {
-      logger.warn(convMsg(msg, args));
-    }
-  }
-
-  @Override
-  public void warn(String msg, Throwable throwable) {
-    logger.warn(msg, throwable);
-  }
-
-  @Override
-  public void info(String msg) {
-    logger.info(msg);
-  }
-
-  @Override
-  public void info(String msg, Object... args) {
-    if (isInfoEnabled()) {
-      logger.info(convMsg(msg, args));
-    }
-  }
-
-  @Override
-  public void debug(String msg) {
-    logger.debug(msg);
-  }
-
-  @Override
-  public void debug(String msg, Object... args) {
-    if (isDebugEnabled()) {
-      logger.debug(convMsg(msg, args));
-    }
-  }
-
-  @Override
-  public void debug(String msg, Throwable throwable) {
-    logger.debug(msg, throwable);
-  }
-
-  @Override
-  public void trace(Object msg) {
-    logger.trace(msg.toString());
-  }
-
-  @Override
-  public void trace(String msg) {
-    logger.trace(msg);
-  }
-
-  @Override
-  public void trace(String msg, Object... args) {
-    if (isTraceEnabled()) {
-      logger.trace(convMsg(msg, args));
-    }
-  }
-
-  @Override
-  public void trace(String msg, Throwable throwable) {
-    logger.trace(msg, throwable);
-  }
-
-  private static String convMsg(String msg, Object... args) {
-    return String.format(msg, args);
-  }
-
-  @Override
-  public void setLevel(String level) {}
-
-  @Override
-  public String getLevel() {
-    return "";
-  }
-}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/SLF4JLogFactory.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/SLF4JLogFactory.java
deleted file mode 100644
index 72ea803..0000000
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/peers/jgroups/SLF4JLogFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2017 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.ericsson.gerrit.plugins.highavailability.peers.jgroups;
-
-import org.jgroups.logging.CustomLogFactory;
-import org.jgroups.logging.Log;
-import org.slf4j.LoggerFactory;
-
-/**
- * A custom log factory which takes care to provide instances of {@link SLF4JLog}. If this factory
- * is used jgroups will use the SLF4J API to emit logging and tracing. This can be helpful when
- * gerrit is running in a runtime environment which supports SLF4J logging.
- *
- * <p>To configure jgroups to use this log factory make sure the following system property is set
- * when gerrit is started:
- *
- * <p>{@code
- * -Djgroups.logging.log_factory_class=com.ericsson.gerrit.plugins.highavailability.peers.jgroups.SLF4JLogFactory}
- */
-public class SLF4JLogFactory implements CustomLogFactory {
-
-  @Override
-  public Log getLog(@SuppressWarnings("rawtypes") Class clazz) {
-    return new SLF4JLog(LoggerFactory.getLogger(clazz));
-  }
-
-  @Override
-  public Log getLog(String category) {
-    return new SLF4JLog(LoggerFactory.getLogger(category));
-  }
-}