diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
index d42fb085c42f50ca036de3d2b60c3b0cad9a0a0c..310b64f84a8095b971da10f8750c32318691276e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
@@ -29,6 +29,7 @@ import ch.systemsx.cisd.cifex.rpc.client.ICIFEXComponent;
 import ch.systemsx.cisd.common.exceptions.InvalidAuthenticationException;
 import ch.systemsx.cisd.common.exceptions.InvalidSessionException;
 import ch.systemsx.cisd.common.spring.AbstractServiceWithLogger;
+import ch.systemsx.cisd.common.spring.IInvocationLoggerContext;
 import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.IProcessingPluginTask;
 import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.IReportingPluginTask;
 import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.PluginTaskProvider;
@@ -148,9 +149,9 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic
         commandExecuter.start();
     }
 
-    public IDataStoreService createLogger(final boolean invocationSuccessful, final long elapsedTime)
+    public IDataStoreService createLogger(IInvocationLoggerContext context)
     {
-        return new DataStoreServiceLogger(operationLog, invocationSuccessful, elapsedTime);
+        return new DataStoreServiceLogger(operationLog, context);
     }
 
     public int getVersion(String sessionToken)
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java
index 909b6e22d666cc9c37c3f575d8f168e10868f0ef..982a089b01491614b52493bb05ecf187bcb2a06e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java
@@ -21,6 +21,7 @@ import java.util.List;
 import org.apache.log4j.Logger;
 
 import ch.systemsx.cisd.common.exceptions.InvalidAuthenticationException;
+import ch.systemsx.cisd.common.spring.IInvocationLoggerContext;
 import ch.systemsx.cisd.openbis.generic.shared.IDataStoreService;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
@@ -38,15 +39,12 @@ class DataStoreServiceLogger implements IDataStoreService
 
     private final Logger operationLog;
 
-    private final boolean invocationSuccessful;
+    private final IInvocationLoggerContext loggerContext;
 
-    private final long elapsedTime;
-
-    DataStoreServiceLogger(Logger operationLog, boolean invocationSuccessful, long elapsedTime)
+    DataStoreServiceLogger(Logger operationLog, IInvocationLoggerContext context)
     {
         this.operationLog = operationLog;
-        this.invocationSuccessful = invocationSuccessful;
-        this.elapsedTime = elapsedTime;
+        this.loggerContext = context;
     }
 
     private final void log(final String commandName, final String parameterDisplayFormat,
@@ -65,11 +63,11 @@ class DataStoreServiceLogger implements IDataStoreService
         }
         final String message = String.format(parameterDisplayFormat, parameters);
         final String invocationStatusMessage =
-                invocationSuccessful ? RESULT_SUCCESS : RESULT_FAILURE;
+                loggerContext.invocationWasSuccessful() ? RESULT_SUCCESS : RESULT_FAILURE;
         // We put on purpose 2 spaces between the command and the message derived from the
         // parameters.
         operationLog.info(String.format("%s  %s%s (%s ms)", commandName, message,
-                invocationStatusMessage, elapsedTime));
+                invocationStatusMessage, loggerContext.getElapsedTime()));
     }
 
     public int getVersion(String sessionToken)