diff --git a/src/main/java/com/ruesga/gerrit/plugins/fcm/workers/FcmUploaderWorker.java b/src/main/java/com/ruesga/gerrit/plugins/fcm/workers/FcmUploaderWorker.java
index c4b00ab..b03aa65 100644
--- a/src/main/java/com/ruesga/gerrit/plugins/fcm/workers/FcmUploaderWorker.java
+++ b/src/main/java/com/ruesga/gerrit/plugins/fcm/workers/FcmUploaderWorker.java
@@ -119,7 +119,7 @@
             String data = gson.toJson(submit.request);
             if (log.isDebugEnabled()) {
                 log.debug(String.format(
-                        "[%] Sending fcm notification: %s", pluginName, data));
+                        "[%s] Sending fcm notification: %s", pluginName, data));
             }
 
             URL url = new URL(config.serverUrl);
@@ -164,6 +164,11 @@
                 }
 
                 // Process the server response
+                if (log.isDebugEnabled()) {
+                    log.debug(String.format(
+                        "[%s] fcm response: %s",
+                        pluginName, response.toString()));
+                }
                 processResponse(conn, submit, gson.fromJson(
                         response.toString(), FcmResponseInfo.class));
 
@@ -223,7 +228,7 @@
                 case "NotRegistered":
                     // Remove this client from the database
                     if (log.isDebugEnabled()) {
-                        log.debug("[%] %d - %s - %s is not registered. " +
+                        log.debug("[%s] %d - %s - %s is not registered. " +
                                 "Remove from db.",
                                 pluginName, submit.accountId,
                                 submit.device,
@@ -272,7 +277,7 @@
         }
 
         if (log.isDebugEnabled()) {
-            log.debug("[%] Retry fcm notification to %s after %d seconds",
+            log.debug("[%s] Retry fcm notification to %s after %d seconds",
                     pluginName, submit.request.to, retryAfter);
         }
         this.delayedExecutor.schedule(new Runnable() {
