diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServerLogger.java
index b8ff35b341d00c2630cc0aa7f4dbc892d21cd8af..734bd9460d32aeacd687b07172cb93edc51de1e5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServerLogger.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServerLogger.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server;
 
 import java.util.List;
 
+import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 
 import ch.systemsx.cisd.authentication.ISessionManager;
@@ -75,18 +76,29 @@ public abstract class AbstractServerLogger implements IServer
     protected final void logAccess(final String sessionToken, final String commandName,
             final String parameterDisplayFormat, final Object... parameters)
     {
-        logMessage(accessLog, sessionToken, commandName, parameterDisplayFormat, parameters);
+        logMessage(accessLog, Level.INFO, sessionToken, commandName, parameterDisplayFormat, parameters);
+    }
+
+    protected final void logAccess(final Level level, final String sessionToken, final String commandName,
+            final String parameterDisplayFormat, final Object... parameters)
+    {
+        logMessage(accessLog, level, sessionToken, commandName, parameterDisplayFormat, parameters);
     }
 
     protected final void logTracking(final String sessionToken, final String commandName,
             final String parameterDisplayFormat, final Object... parameters)
     {
-        logMessage(trackingLog, sessionToken, commandName, parameterDisplayFormat, parameters);
+        logMessage(trackingLog, Level.INFO, sessionToken, commandName, parameterDisplayFormat, parameters);
     }
 
-    private final void logMessage(final Logger logger, final String sessionToken,
-            final String commandName, final String parameterDisplayFormat, final Object[] parameters)
+    private final void logMessage(final Logger logger, final Level level,
+            final String sessionToken, final String commandName,
+            final String parameterDisplayFormat, final Object[] parameters)
     {
+        if (logger.isEnabledFor(level) == false)
+        {
+            return;
+        }
         Session sessionOrNull = null;
         try
         {
@@ -112,7 +124,7 @@ public abstract class AbstractServerLogger implements IServer
         final String elapsedTimeMessage = getElapsedTimeMessage();
         // We put on purpose 2 spaces between the command and the message derived from the
         // parameters.
-        logger.info(prefix
+        logger.log(level, prefix
                 + String.format(": (%s) %s  %s%s", elapsedTimeMessage, commandName, message,
                         invocationStatusMessage));
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
index 04afc73ec150509110ae9ed0975d4197ab095216..ae9f6925bde5eebd0c0f13cff18280b0e339caa6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Level;
 
 import ch.systemsx.cisd.authentication.ISessionManager;
 import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
@@ -806,7 +807,7 @@ final class CommonServerLogger extends AbstractServerLogger implements ICommonSe
 
     public void keepSessionAlive(String sessionToken)
     {
-        logTracking(sessionToken, "keepSessionAlive", "TOKEN(%s)", sessionToken);
+        logAccess(Level.DEBUG, sessionToken, "keepSessionAlive", "TOKEN(%s)", sessionToken);
     }
 
     public void updateVocabularyTerms(String sessionToken, TechId vocabularyId,