diff --git a/src/main/java/org/eclipse/openk/portal/auth2/util/JwtHelper.java b/src/main/java/org/eclipse/openk/portal/auth2/util/JwtHelper.java
index e87e19a..0830a09 100644
--- a/src/main/java/org/eclipse/openk/portal/auth2/util/JwtHelper.java
+++ b/src/main/java/org/eclipse/openk/portal/auth2/util/JwtHelper.java
@@ -155,7 +155,7 @@
   }
 
   private static String sendGet(String targetUrl, String accept, String token) throws PortalInternalServerError {
-    logger.info("sendGet");
+    logger.trace("sendGet");
 
     HttpURLConnection con = getHttpConnection(targetUrl);
     StringBuilder response = new StringBuilder(); // or StringBuffer if Java version 5+
@@ -174,10 +174,10 @@
         while ((line = rd.readLine()) != null) {
           response.append(line);
           response.append('\r');
-          logger.info("Got line -> " + line);
+          logger.trace("Got line -> " + line);
         }
       }
-      logger.info("sendGet was successful");
+      logger.trace("sendGet was successful");
       return response.toString();
     } catch (Exception e) {
       logger.error("Error occured in sendGet: " + e);
@@ -186,7 +186,7 @@
   }
 
   private static String sendPost(String targetUrl, String urlParameters) throws PortalInternalServerError {
-    logger.info("sendPost");
+    logger.debug("sendPost");
 
    HttpURLConnection con = getHttpConnection(targetUrl);
     StringBuilder response = new StringBuilder(); // or StringBuffer if Java version 5+
diff --git a/src/main/java/org/eclipse/openk/portal/controller/BaseWebService.java b/src/main/java/org/eclipse/openk/portal/controller/BaseWebService.java
index 2131546..fc04dc4 100644
--- a/src/main/java/org/eclipse/openk/portal/controller/BaseWebService.java
+++ b/src/main/java/org/eclipse/openk/portal/controller/BaseWebService.java
@@ -34,7 +34,7 @@
         String lookupName = buildLookupId(methodName);
         currentTimeMeasures.put(lookupName, lStartingTime);
 
-        logger.info(this.getClass().getName() + "." + lookupName + ": Start processing...");
+        logger.trace(this.getClass().getName() + "." + lookupName + ": Start processing...");
     }
 
     protected AutoCloseable perform(final String methodName) {
@@ -52,7 +52,7 @@
             Long lStartingTime = currentTimeMeasures.get(lookupName);
             currentTimeMeasures.remove(lookupName);
 
-            logger.info(this.getClass().getName() + "." + lookupName + ": Finished processing in " + (System.currentTimeMillis() - lStartingTime) + " ms");
+            logger.trace(this.getClass().getName() + "." + lookupName + ": Finished processing in " + (System.currentTimeMillis() - lStartingTime) + " ms");
         }
 
     }
diff --git a/src/main/java/org/eclipse/openk/portal/rest/BackendRestService.java b/src/main/java/org/eclipse/openk/portal/rest/BackendRestService.java
index bf13edb..64ea870 100644
--- a/src/main/java/org/eclipse/openk/portal/rest/BackendRestService.java
+++ b/src/main/java/org/eclipse/openk/portal/rest/BackendRestService.java
@@ -90,7 +90,7 @@
     @Path("/checkAuth")
     @Produces("application/json")
     public Response checkAuth(@HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String accessToken) {
-        logger.debug("checkAuth portal called");
+        logger.trace("checkAuth portal called");
         return invoke(accessToken, true, new ControllerImplementations.CheckAuth());
     }
 
