diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java
index b03a77b..74a0817 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java
@@ -51,7 +51,7 @@
     args.add("--project", projectName);
     args.add("--refname", refname);
     args.add("--uploader", receiveEvent.user.getNameEmail());
-    args.add("--uploader-username", receiveEvent.user.getUserName());
+    args.add("--uploader-username", receiveEvent.user.getUserName().orElse(null));
     args.add("--oldrev", old.name());
     args.add("--newrev", receiveEvent.commit.name());
     args.add("--cmdref", commandRef);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookExecutor.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookExecutor.java
index 42d4e75..bd56c3e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookExecutor.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookExecutor.java
@@ -1,5 +1,6 @@
 package com.googlesource.gerrit.plugins.hooks;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.server.config.GerritServerConfig;
@@ -13,16 +14,15 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import org.eclipse.jgit.lib.Config;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class HookExecutor implements LifecycleListener {
-  private static final Logger log = LoggerFactory.getLogger(HookExecutor.class);
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
+
   private static final UncaughtExceptionHandler LOG_UNCAUGHT_EXCEPTION =
       new UncaughtExceptionHandler() {
         @Override
         public void uncaughtException(Thread t, Throwable e) {
-          log.error("HookExecutor thread {} threw exception", t.getName(), e);
+          logger.atSevere().withCause(e).log("HookExecutor thread %s threw exception", t.getName());
         }
       };
 
@@ -46,7 +46,7 @@
 
   HookResult submit(String projectName, Path hook, HookArgs args) {
     if (!Files.exists(hook)) {
-      log.debug("Hook file not found: {}", hook);
+      logger.atFine().log("Hook file not found: %s", hook);
       return null;
     }
     HookTask.Sync hookTask = new HookTask.Sync(projectName, hook, args);
@@ -58,10 +58,10 @@
       return task.get(timeout, TimeUnit.SECONDS);
     } catch (TimeoutException e) {
       message = "Synchronous hook timed out " + hook;
-      log.error(message);
+      logger.atSevere().log(message);
     } catch (Exception e) {
       message = "Error running hook " + hook;
-      log.error(message, e);
+      logger.atSevere().withCause(e).log(message);
     }
     task.cancel(true);
     hookTask.cancel();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
index f3d8293..afd189d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
@@ -16,6 +16,7 @@
 
 import static com.google.common.base.MoreObjects.firstNonNull;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gerrit.server.config.SitePaths;
 import com.google.inject.Inject;
@@ -23,12 +24,10 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import org.eclipse.jgit.lib.Config;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @Singleton
 public class HookFactory {
-  private static final Logger log = LoggerFactory.getLogger(HookFactory.class);
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private final HookQueue queue;
   private final HookExecutor syncHookExecutor;
@@ -54,13 +53,13 @@
     } else {
       this.hooksPath = sitePaths.hooks_dir;
     }
-    log.info("hooks.path: {}", this.hooksPath);
+    logger.atInfo().log("hooks.path: %s", this.hooksPath);
   }
 
   private Path getHookPath(String configName, String defaultName) {
     String v = config.getString("hooks", null, configName);
     Path hookPath = hooksPath.resolve(firstNonNull(v, defaultName));
-    log.info("hooks.{} resolved to {}", configName, hookPath);
+    logger.atInfo().log("hooks.%s resolved to %s", configName, hookPath);
     return hookPath;
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java
index 1b2a307..88ae311 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java
@@ -14,17 +14,16 @@
 
 package com.googlesource.gerrit.plugins.hooks;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.server.git.WorkQueue;
 import com.google.inject.Inject;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.concurrent.ScheduledExecutorService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 class HookQueue implements LifecycleListener {
-  private static final Logger log = LoggerFactory.getLogger(HookQueue.class);
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private final WorkQueue workQueue;
 
@@ -41,7 +40,7 @@
 
   void submit(String projectName, Path hook, HookArgs args) {
     if (!Files.exists(hook)) {
-      log.debug("Hook file not found: {}", hook.toAbsolutePath());
+      logger.atFine().log("Hook file not found: %s", hook.toAbsolutePath());
       return;
     }
     queue.submit(new HookTask.Async(projectName, hook, args));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java
index b6654da..8b06a24 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java
@@ -16,6 +16,7 @@
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
+import com.google.common.flogger.FluentLogger;
 import com.google.common.io.ByteStreams;
 import com.google.gerrit.metrics.Timer1;
 import com.google.gerrit.reviewdb.client.Project;
@@ -29,11 +30,9 @@
 import java.util.Map;
 import java.util.concurrent.Callable;
 import org.eclipse.jgit.lib.Repository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 class HookTask {
-  private static final Logger log = LoggerFactory.getLogger(HookTask.class);
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private final Path sitePath;
   private final String projectName;
@@ -113,25 +112,25 @@
     } catch (InterruptedException iex) {
       // InterruptedException - timeout or cancel
       args.metrics.timeout(name);
-      log.error("hook[{}] timed out: {}", name, iex.getMessage());
+      logger.atSevere().log("hook[%s] timed out: %s", name, iex.getMessage());
     } catch (Throwable err) {
       args.metrics.error(name);
-      log.error("Error running hook {}", hook.toAbsolutePath(), err);
+      logger.atSevere().withCause(err).log("Error running hook %s", hook.toAbsolutePath());
     }
 
     if (result != null) {
       int exitValue = result.getExitValue();
       if (exitValue != 0) {
-        log.error("hook[{}] exited with error status: {}", name, exitValue);
+        logger.atSevere().log("hook[%s] exited with error status: %d", name, exitValue);
       }
 
-      if (log.isDebugEnabled()) {
+      if (logger.atFine().isEnabled()) {
         try (BufferedReader br = new BufferedReader(new StringReader(result.getOutput()))) {
           br.lines()
               .filter(s -> !s.isEmpty())
-              .forEach(line -> log.debug("hook[{}] output: {}", name, line));
+              .forEach(line -> logger.atFine().log("hook[%s] output: %s", name, line));
         } catch (IOException iox) {
-          log.error("Error writing hook [{}] output", name, iox);
+          logger.atSevere().withCause(iox).log("Error writing hook [%s] output", name);
         }
       }
     }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java
index 7eedfa5..90a1b93 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java
@@ -49,7 +49,7 @@
     HookArgs args = hookFactory.createArgs();
     args.add("--project", projectName);
     args.add("--uploader", refEvent.user.getNameEmail());
-    args.add("--uploader-username", refEvent.user.getUserName());
+    args.add("--uploader-username", refEvent.user.getUserName().orElse(null));
     args.add("--oldrev", getObjectId(refEvent.command.getOldId()).getName());
     args.add("--newrev", getObjectId(refEvent.command.getNewId()).getName());
     args.add("--refname", refEvent.command.getRefName());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java
index 8e2f1e0..7474553 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java
@@ -51,7 +51,7 @@
     args.add("--project", projectName);
     args.add("--branch", destBranch.get());
     args.add("--submitter", caller.getNameEmail());
-    args.add("--submitter-username", caller.getUserName());
+    args.add("--submitter-username", caller.getUserName().get());
     args.add("--patchset", patchSetId.get());
     args.add("--commit", commit.getId().name());
 
