Migrate to flogger

Change-Id: Iae8b60542b69e098931796cd2505844bc6d71b25
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Manager.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Manager.java
index ae26bc0..55b0929 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Manager.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Manager.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.rabbitmq;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.annotations.PluginData;
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.extensions.events.LifecycleListener;
@@ -34,13 +35,11 @@
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @Singleton
 public class Manager implements LifecycleListener {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(Manager.class);
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   public static final String FILE_EXT = ".config";
   public static final String SITE_DIR = "site";
@@ -114,11 +113,11 @@
           propList.add(site);
         }
       }
-    } catch (IOException iex) {
-      LOGGER.warn(iex.getMessage());
+    } catch (IOException ioe) {
+      logger.atWarning().log(ioe.getMessage());
     }
     if (propList.isEmpty()) {
-      LOGGER.warn("No site configs found. Using base config only!");
+      logger.atWarning().log("No site configs found. Using base config only!");
       propList.add(base);
     }
     return propList;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
index a721bff..4ecf35e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.rabbitmq.config;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.server.util.time.TimeUtil;
 import com.googlesource.gerrit.plugins.rabbitmq.annotation.MessageHeader;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.Message;
@@ -24,15 +25,13 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.commons.codec.CharEncoding;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class AMQProperties {
 
   public static final String EVENT_APPID = "gerrit";
   public static final String CONTENT_TYPE_JSON = "application/json";
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(AMQProperties.class);
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private final Message message;
   private final Map<String, Object> headers;
@@ -66,7 +65,8 @@
                 break;
             }
           } catch (IllegalAccessException | IllegalArgumentException ex) {
-            LOGGER.warn("Cannot access field {}. Cause: {}", f.getName(), ex.getMessage());
+            logger.atWarning().log(
+                "Cannot access field %s. Cause: %s", f.getName(), ex.getMessage());
           }
         }
       }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
index 7577815..dcfe32f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.rabbitmq.config;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.inject.assistedinject.Assisted;
 import com.google.inject.assistedinject.AssistedInject;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.Gerrit;
@@ -30,12 +31,10 @@
 import org.eclipse.jgit.lib.Config;
 import org.eclipse.jgit.storage.file.FileBasedConfig;
 import org.eclipse.jgit.util.FS;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class PluginProperties implements Properties {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(PluginProperties.class);
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private static final int MINIMUM_CONNECTION_MONITOR_INTERVAL = 5000;
 
@@ -77,9 +76,9 @@
   @Override
   public boolean load(Properties baseProperties) {
     initialize();
-    LOGGER.info("Loading {} ...", propertiesFile);
+    logger.atInfo().log("Loading %s", propertiesFile);
     if (!Files.exists(propertiesFile)) {
-      LOGGER.warn("No {}", propertiesFile);
+      logger.atWarning().log("No %s", propertiesFile);
       return false;
     }
 
@@ -87,10 +86,10 @@
     try {
       cfg.load();
     } catch (ConfigInvalidException e) {
-      LOGGER.info("{} has invalid format: {}", propertiesFile, e.getMessage());
+      logger.atInfo().log("%s has invalid format: %s", propertiesFile, e.getMessage());
       return false;
     } catch (IOException e) {
-      LOGGER.info("Cannot read {}: {}", propertiesFile, e.getMessage());
+      logger.atInfo().log("Cannot read %s: %s", propertiesFile, e.getMessage());
       return false;
     }
     for (Section section : getSections()) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
index 37adac7..c996e1d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.rabbitmq.message;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.server.events.Event;
 import com.google.gerrit.server.events.EventListener;
@@ -30,12 +31,10 @@
 import java.util.Timer;
 import java.util.TimerTask;
 import java.util.concurrent.LinkedBlockingQueue;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class MessagePublisher implements Publisher, LifecycleListener {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(MessagePublisher.class);
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private static final int MONITOR_FIRSTTIME_DELAY = 15000;
 
@@ -69,12 +68,13 @@
             }
             if (queue.offer(event)) {
               if (lostEventCount > 0) {
-                LOGGER.warn("Event queue is no longer full, {} events were lost", lostEventCount);
+                logger.atWarning().log(
+                    "Event queue is no longer full, %d events were lost", lostEventCount);
                 lostEventCount = 0;
               }
             } else {
               if (lostEventCount++ % 10 == 0) {
-                LOGGER.error("Event queue is full, lost {} event(s)", lostEventCount);
+                logger.atSevere().log("Event queue is full, lost %d event(s)", lostEventCount);
               }
             }
           }
@@ -95,10 +95,11 @@
                   }
                 }
                 if (!publishEvent(event) && !queue.offer(event)) {
-                  LOGGER.error("Event lost: {}", gson.toJson(event));
+                  logger.atSevere().log("Event lost: %s", gson.toJson(event));
                 }
               } catch (InterruptedException e) {
-                LOGGER.warn("Interupted while waiting for event or connection.", e);
+                logger.atWarning().withCause(e).log(
+                    "Interupted while waiting for event or connection.");
               }
             }
           }
@@ -130,7 +131,7 @@
             @Override
             public void run() {
               if (!isConnected()) {
-                LOGGER.info("#start: try to reconnect");
+                logger.atInfo().log("#start: try to reconnect");
                 connect();
               }
             }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
index 3ae3104..a1dd775 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.rabbitmq.session.type;
 
+import com.google.common.flogger.FluentLogger;
 import com.googlesource.gerrit.plugins.rabbitmq.config.Properties;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.AMQP;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.Exchange;
@@ -36,10 +37,9 @@
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.commons.codec.CharEncoding;
 import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public final class AMQPSession implements Session {
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private class ShutdownListenerImpl implements ShutdownListener {
 
@@ -62,10 +62,10 @@
           if (clazz == Channel.class) {
             Channel ch = Channel.class.cast(obj);
             if (cause.isInitiatedByApplication()) {
-              LOGGER.info(MSG("Channel #{} closed by application."), ch.getChannelNumber());
+              logger.atInfo().log(MSG("Channel #%d closed by application."), ch.getChannelNumber());
             } else {
-              LOGGER.warn(
-                  MSG("Channel #{} closed. Cause: {}"), ch.getChannelNumber(), cause.getMessage());
+              logger.atWarning().log(
+                  MSG("Channel #%dclosed. Cause: %s"), ch.getChannelNumber(), cause.getMessage());
             }
             if (ch.equals(AMQPSession.this.channel)) {
               AMQPSession.this.channel = null;
@@ -73,9 +73,9 @@
           } else if (clazz == Connection.class) {
             Connection conn = Connection.class.cast(obj);
             if (cause.isInitiatedByApplication()) {
-              LOGGER.info(MSG("Connection closed by application."));
+              logger.atInfo().log(MSG("Connection closed by application."));
             } else {
-              LOGGER.warn(MSG("Connection closed. Cause: {}"), cause.getMessage());
+              logger.atWarning().log(MSG("Connection closed. Cause: %s"), cause.getMessage());
             }
             if (conn.equals(AMQPSession.this.connection)) {
               AMQPSession.this.connection = null;
@@ -86,7 +86,6 @@
     }
   }
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(AMQPSession.class);
   private final Properties properties;
   private volatile Connection connection;
   private volatile Channel channel;
@@ -120,13 +119,13 @@
         ch = connection.createChannel();
         ch.addShutdownListener(channelListener);
         failureCount.set(0);
-        LOGGER.info(MSG("Channel #{} opened."), ch.getChannelNumber());
+        logger.atInfo().log(MSG("Channel #%d opened."), ch.getChannelNumber());
       } catch (IOException | AlreadyClosedException ex) {
-        LOGGER.error(MSG("Failed to open channel."), ex);
+        logger.atSevere().withCause(ex).log(MSG("Failed to open channel."));
         failureCount.incrementAndGet();
       }
       if (failureCount.get() > properties.getSection(Monitor.class).failureCount) {
-        LOGGER.warn("Connection has something wrong. So will be disconnected.");
+        logger.atWarning().log("Creating channel failed %d times, closing connection.", failureCount.get());
         disconnect();
       }
     }
@@ -136,11 +135,11 @@
   @Override
   public boolean connect() {
     if (connection != null && connection.isOpen()) {
-      LOGGER.info(MSG("Already connected."));
+      logger.atInfo().log(MSG("Already connected."));
       return true;
     }
     AMQP amqp = properties.getSection(AMQP.class);
-    LOGGER.info(MSG("Connect to {}..."), amqp.uri);
+    logger.atInfo().log(MSG("Connect to %s..."), amqp.uri);
     ConnectionFactory factory = new ConnectionFactory();
     try {
       if (StringUtils.isNotEmpty(amqp.uri)) {
@@ -157,40 +156,40 @@
         }
         connection = factory.newConnection();
         connection.addShutdownListener(connectionListener);
-        LOGGER.info(MSG("Connection established."));
+        logger.atInfo().log(MSG("Connection established."));
         return true;
       }
     } catch (URISyntaxException ex) {
-      LOGGER.error(MSG("URI syntax error: {}"), amqp.uri);
+      logger.atSevere().log(MSG("URI syntax error: %s"), amqp.uri);
     } catch (IOException | TimeoutException ex) {
-      LOGGER.error(MSG("Connection cannot be opened."), ex);
+      logger.atSevere().withCause(ex).log(MSG("Connection cannot be opened."));
     } catch (KeyManagementException | NoSuchAlgorithmException ex) {
-      LOGGER.error(MSG("Security error when opening connection."), ex);
+      logger.atSevere().withCause(ex).log(MSG("Security error when opening connection."));
     }
     return false;
   }
 
   @Override
   public void disconnect() {
-    LOGGER.info(MSG("Disconnecting..."));
+    logger.atInfo().log(MSG("Disconnecting..."));
     try {
       if (channel != null) {
-        LOGGER.info(MSG("Closing Channel #{}..."), channel.getChannelNumber());
+        logger.atInfo().log(MSG("Closing Channel #%d..."), channel.getChannelNumber());
         channel.close();
       }
     } catch (IOException | TimeoutException ex) {
-      LOGGER.error(MSG("Error when closing channel."), ex);
+      logger.atSevere().withCause(ex).log(MSG("Error when closing channel."));
     } finally {
       channel = null;
     }
 
     try {
       if (connection != null) {
-        LOGGER.info(MSG("Closing Connection..."));
+        logger.atInfo().log(MSG("Closing Connection..."));
         connection.close();
       }
     } catch (IOException ex) {
-      LOGGER.error(MSG("Error when closing connection."), ex);
+      logger.atSevere().withCause(ex).log(MSG("Error when closing connection."));
     } finally {
       connection = null;
     }
@@ -205,7 +204,7 @@
       Message message = properties.getSection(Message.class);
       Exchange exchange = properties.getSection(Exchange.class);
       try {
-        LOGGER.debug(MSG("Sending message."));
+        logger.atFine().log(MSG("Sending message."));
         channel.basicPublish(
             exchange.name,
             message.routingKey,
@@ -213,11 +212,11 @@
             messageBody.getBytes(CharEncoding.UTF_8));
         return true;
       } catch (IOException ex) {
-        LOGGER.error(MSG("Error when sending meessage."), ex);
+        logger.atSevere().withCause(ex).log(MSG("Error when sending meessage."));
         return false;
       }
     }
-    LOGGER.error(MSG("Cannot open channel."));
+    logger.atSevere().log(MSG("Cannot open channel."));
     return false;
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/DefaultEventWorker.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/DefaultEventWorker.java
index 1916be3..53ed103 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/DefaultEventWorker.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/DefaultEventWorker.java
@@ -14,19 +14,18 @@
 
 package com.googlesource.gerrit.plugins.rabbitmq.worker;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.server.events.Event;
 import com.google.gerrit.server.events.EventListener;
 import com.google.inject.Singleton;
 import com.googlesource.gerrit.plugins.rabbitmq.message.Publisher;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @Singleton
 public class DefaultEventWorker implements EventListener, EventWorker {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(DefaultEventWorker.class);
+  private final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private final Set<Publisher> publishers = new CopyOnWriteArraySet<>();
 
@@ -37,7 +36,7 @@
 
   @Override
   public void addPublisher(String pluginName, Publisher publisher, String userName) {
-    LOGGER.warn("addPublisher() with username '{}' was called. Hence no operation.", userName);
+    logger.atWarning().log("addPublisher() with username '%s' was called. No-op.", userName);
   }
 
   @Override
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/UserEventWorker.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/UserEventWorker.java
index 32c1ec7..de21369 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/UserEventWorker.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/UserEventWorker.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.rabbitmq.worker;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.registration.RegistrationHandle;
 import com.google.gerrit.reviewdb.client.Account;
@@ -37,12 +38,10 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class UserEventWorker implements EventWorker {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(UserEventWorker.class);
+  private final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private final DynamicSet<UserScopedEventListener> eventListeners;
   private final WorkQueue workQueue;
@@ -74,7 +73,7 @@
 
   @Override
   public void addPublisher(final Publisher publisher) {
-    LOGGER.warn("addPublisher() without username was called. Hence no operation.");
+    logger.atWarning().log("addPublisher() without username was called. No-op.");
   }
 
   @Override
@@ -118,8 +117,7 @@
                 try {
                   userAccount = accountResolver.find(userName);
                   if (userAccount == null) {
-                    LOGGER.error(
-                        "No single user could be found when searching for listenAs: {}", userName);
+                    logger.atSevere().log("Cannot find account for listenAs: %s", userName);
                     return;
                   }
                   final IdentifiedUser user = userFactory.create(userAccount.getId());
@@ -138,9 +136,9 @@
                             }
                           });
                   eventListenerRegistrations.put(publisher, registration);
-                  LOGGER.info("Listen events as : {}", userName);
+                  logger.atInfo().log("Listen events as : %s", userName);
                 } catch (OrmException | ConfigInvalidException | IOException e) {
-                  LOGGER.error("Could not query database for listenAs", e);
+                  logger.atSevere().withCause(e).log("Could not query database for listenAs");
                   return;
                 } finally {
                   threadLocalRequestContext.setContext(old);