diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
index ce5ca6e..b6fb374 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
@@ -167,7 +167,7 @@
       logger.atFiner().log(
           "Get from cache %s, key=%s, cache size=%d", dbCache, key, dbCache.size());
       logger.atFine().atMostEvery(30, TimeUnit.SECONDS).log(
-          "FindOwnersCacheStats: " + dbCache.stats());
+          "FindOwnersCacheStats: %s", dbCache.stats());
       return dbCache.get(
           key,
           new Callable<OwnersDb>() {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java
index d5faaff..99f1601 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java
@@ -83,7 +83,7 @@
     } catch (BadRequestException e) {
       // Catch this exception to avoid too many call stack dumps
       // from bad wrong client requests.
-      logger.atSevere().log("Exception: " + e);
+      logger.atSevere().log("Exception: %s", e);
       return Response.none();
     }
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
index f2b90df..58c611e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
@@ -299,8 +299,8 @@
       add2dir2Globs(Util.getDirName(glob) + "/", glob);
     }
     if (config.getReportSyntaxError()) {
-      Ordering.natural().sortedCopy(result.errors).forEach(e -> logger.atSevere().log(e));
-      Ordering.natural().sortedCopy(result.warnings).forEach(w -> logger.atWarning().log(w));
+      Ordering.natural().sortedCopy(result.errors).forEach(e -> logger.atSevere().log("%s", e));
+      Ordering.natural().sortedCopy(result.warnings).forEach(w -> logger.atWarning().log("%s", w));
     }
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/Parser.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/Parser.java
index c13213c..af6c552 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/Parser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/Parser.java
@@ -310,7 +310,7 @@
       return Util.normalizedRepoDirFilePath(dir, path);
     } catch (IOException e) {
       String msg = "Fail to normalized path " + dir + " / " + path;
-      logger.atSevere().withCause(e).log(msg);
+      logger.atSevere().withCause(e).log("%s", msg);
       logs.add(msg + ":" + e.getMessage());
       return dir + "/" + path;
     }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/findowners/Watcher.java b/src/test/java/com/googlesource/gerrit/plugins/findowners/Watcher.java
index 34b70cc..2b291e4 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/findowners/Watcher.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/findowners/Watcher.java
@@ -28,11 +28,11 @@
 
   @Override
   public void starting(final Description method) {
-    logger.atInfo().log("Test starting: " + method);
+    logger.atInfo().log("Test starting: %s", method);
   }
 
   @Override
   public void finished(final Description method) {
-    logger.atInfo().log("Test finished: " + method);
+    logger.atInfo().log("Test finished: %s", method);
   }
 }
