diff --git a/src/main/java/org/caosdb/server/entity/Message.java b/src/main/java/org/caosdb/server/entity/Message.java
index c65af964c12e60f409b908e3621e78dbc712fff4..bd52fa966d12cd91b1db10b064e60a81d29bc7b8 100644
--- a/src/main/java/org/caosdb/server/entity/Message.java
+++ b/src/main/java/org/caosdb/server/entity/Message.java
@@ -35,21 +35,23 @@ public class Message extends Exception implements Comparable<Message>, ToElement
   private final String description;
   private final String body;
 
-  @Deprecated private static final Map<Message, String> legacy_codes_mapping = new HashMap<>();
-
-  static {
-    legacy_codes_mapping.put(ServerMessages.ENTITY_HAS_BEEN_DELETED_SUCCESSFULLY, "10");
-    legacy_codes_mapping.put(ServerMessages.ATOMICITY_ERROR, "12");
-    legacy_codes_mapping.put(ServerMessages.ENTITY_DOES_NOT_EXIST, "101");
-    legacy_codes_mapping.put(ServerMessages.PROPERTY_HAS_NO_DATATYPE, "110");
-    legacy_codes_mapping.put(ServerMessages.ENTITY_HAS_UNQUALIFIED_PROPERTIES, "114");
-    legacy_codes_mapping.put(ServerMessages.ENTITY_HAS_UNQUALIFIED_PARENTS, "116");
-    legacy_codes_mapping.put(ServerMessages.WARNING_OCCURED, "128");
-    legacy_codes_mapping.put(ServerMessages.ENTITY_NAME_IS_NOT_UNIQUE, "152");
-    legacy_codes_mapping.put(ServerMessages.REQUIRED_BY_UNQUALIFIED, "192");
-    legacy_codes_mapping.put(ServerMessages.REFERENCED_ENTITY_DOES_NOT_EXIST, "235");
-    legacy_codes_mapping.put(ServerMessages.AUTHORIZATION_ERROR, "403");
-    legacy_codes_mapping.put(ServerMessages.ROLE_DOES_NOT_EXIST, "1104");
+  @Deprecated private static final Map<String, String> legacy_codes_mapping = new HashMap<>();
+
+  static void init() {
+    legacy_codes_mapping.put(
+        ServerMessages.ENTITY_HAS_BEEN_DELETED_SUCCESSFULLY.coreToString(), "10");
+    legacy_codes_mapping.put(ServerMessages.ATOMICITY_ERROR.coreToString(), "12");
+    legacy_codes_mapping.put(ServerMessages.ENTITY_DOES_NOT_EXIST.coreToString(), "101");
+    legacy_codes_mapping.put(ServerMessages.PROPERTY_HAS_NO_DATATYPE.coreToString(), "110");
+    legacy_codes_mapping.put(
+        ServerMessages.ENTITY_HAS_UNQUALIFIED_PROPERTIES.coreToString(), "114");
+    legacy_codes_mapping.put(ServerMessages.ENTITY_HAS_UNQUALIFIED_PARENTS.coreToString(), "116");
+    legacy_codes_mapping.put(ServerMessages.WARNING_OCCURED.coreToString(), "128");
+    legacy_codes_mapping.put(ServerMessages.ENTITY_NAME_IS_NOT_UNIQUE.coreToString(), "152");
+    legacy_codes_mapping.put(ServerMessages.REQUIRED_BY_UNQUALIFIED.coreToString(), "192");
+    legacy_codes_mapping.put(ServerMessages.REFERENCED_ENTITY_DOES_NOT_EXIST.coreToString(), "235");
+    legacy_codes_mapping.put(ServerMessages.AUTHORIZATION_ERROR.coreToString(), "403");
+    legacy_codes_mapping.put(ServerMessages.ROLE_DOES_NOT_EXIST.coreToString(), "1104");
   }
 
   private static final long serialVersionUID = 1837110172902899264L;
@@ -65,15 +67,18 @@ public class Message extends Exception implements Comparable<Message>, ToElement
     return toString().hashCode();
   }
 
-  @Override
-  public String toString() {
-    return this.type.toString()
-        + " ("
+  private String coreToString() {
+    return " ("
         + (this.code != null ? this.code.toString() : "0")
         + ") - "
         + (this.description != null ? this.description : "");
   }
 
+  @Override
+  public String toString() {
+    return this.type.toString() + coreToString();
+  }
+
   @Override
   public boolean equals(final Object obj) {
     return obj.toString().equals(toString());
@@ -137,7 +142,7 @@ public class Message extends Exception implements Comparable<Message>, ToElement
   }
 
   public Message(final String string) {
-    this.code = null;
+    this.code = MessageCode.MESSAGE_CODE_UNKNOWN;
     this.description = string;
     this.body = null;
     this.type = MessageType.Info.toString();
@@ -148,10 +153,13 @@ public class Message extends Exception implements Comparable<Message>, ToElement
   }
 
   public Element toElement() {
+    if (legacy_codes_mapping.isEmpty()) {
+      init();
+    }
     final Element e = new Element(this.type);
     if (this.code != null) {
-      if (legacy_codes_mapping.containsKey(this)) {
-        e.setAttribute("code", legacy_codes_mapping.get(this));
+      if (legacy_codes_mapping.containsKey(this.coreToString())) {
+        e.setAttribute("code", legacy_codes_mapping.get(this.coreToString()));
       } else if (this.code == MessageCode.MESSAGE_CODE_UNKNOWN) {
         e.setAttribute("code", "0");
       } else {
diff --git a/src/main/java/org/caosdb/server/grpc/GRPCServer.java b/src/main/java/org/caosdb/server/grpc/GRPCServer.java
index 51c061fa56671100fbc6ec460476ecc16c5a2ce4..70aeabe0d5dea418f426e406abaecb8d6f0b1979 100644
--- a/src/main/java/org/caosdb/server/grpc/GRPCServer.java
+++ b/src/main/java/org/caosdb/server/grpc/GRPCServer.java
@@ -64,6 +64,7 @@ public class GRPCServer {
   private static final Logger logger = LoggerFactory.getLogger(GRPCServer.class.getName());
 
   private final AuthInterceptor authInterceptor = new AuthInterceptor();
+  private final LoggingInterceptor loggingInterceptor = new LoggingInterceptor();
 
   /**
    * Create an ssl context.
@@ -115,14 +116,14 @@ public class GRPCServer {
     final List<ServerServiceDefinition> services = new LinkedList<>();
 
     final GeneralInfoServiceImpl generalInfoService = new GeneralInfoServiceImpl();
-    services.add(ServerInterceptors.intercept(generalInfoService, authInterceptor));
+    services.add(ServerInterceptors.intercept(generalInfoService, loggingInterceptor, authInterceptor));
 
     final FileTransmissionServiceImpl fileTransmissionService = new FileTransmissionServiceImpl();
-    services.add(ServerInterceptors.intercept(fileTransmissionService, authInterceptor));
+    services.add(ServerInterceptors.intercept(fileTransmissionService, loggingInterceptor, authInterceptor));
 
     final EntityTransactionServiceImpl entityTransactionService =
         new EntityTransactionServiceImpl(fileTransmissionService);
-    services.add(ServerInterceptors.intercept(entityTransactionService, authInterceptor));
+    services.add(ServerInterceptors.intercept(entityTransactionService, loggingInterceptor, authInterceptor));
 
     return services;
   }
diff --git a/src/main/java/org/caosdb/server/grpc/LoggingInterceptor.java b/src/main/java/org/caosdb/server/grpc/LoggingInterceptor.java
new file mode 100644
index 0000000000000000000000000000000000000000..1eb59bb01445d419536b1fcdb6da80aabaddcc1e
--- /dev/null
+++ b/src/main/java/org/caosdb/server/grpc/LoggingInterceptor.java
@@ -0,0 +1,24 @@
+package org.caosdb.server.grpc;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import io.grpc.Context;
+import io.grpc.Contexts;
+import io.grpc.Metadata;
+import io.grpc.ServerCall;
+import io.grpc.ServerCall.Listener;
+import io.grpc.ServerCallHandler;
+import io.grpc.ServerInterceptor;
+
+public class LoggingInterceptor implements ServerInterceptor {
+  
+  private static final Logger logger = LoggerFactory.getLogger(LoggingInterceptor.class.getName());
+
+  @Override
+  public <ReqT, RespT> Listener<ReqT> interceptCall(
+      ServerCall<ReqT, RespT> call, Metadata headers, ServerCallHandler<ReqT, RespT> next) {
+    
+    logger.info(call.getMethodDescriptor().getFullMethodName() + " - " + call.getAttributes());
+    return Contexts.interceptCall(Context.current(), call, headers, next);
+  }
+}
diff --git a/src/main/java/org/caosdb/server/transaction/FileStorageConsistencyCheck.java b/src/main/java/org/caosdb/server/transaction/FileStorageConsistencyCheck.java
index bbd1bbd56c57612f62c427676e2bef692ea6ac5c..e066feb3028eb6dcb9bf645070cadefa9cc45047 100644
--- a/src/main/java/org/caosdb/server/transaction/FileStorageConsistencyCheck.java
+++ b/src/main/java/org/caosdb/server/transaction/FileStorageConsistencyCheck.java
@@ -214,7 +214,7 @@ public class FileStorageConsistencyCheck extends Thread
           ret.add(
               new Message(
                   "Error",
-                  MessageCode.MESSAGE_CODE_FILE_NOT_FOUND,
+                  MessageCode.MESSAGE_CODE_UNKNOWN,
                   r.getKey() + ": File does not exist."));
           break;
         case FileConsistencyCheck.FILE_MODIFIED: