feat: Introduced config-parameters for the `io.projectreactor`-logging
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / api / ChatBackendController.java
index 070abf2..47ae6a5 100644 (file)
@@ -1,23 +1,37 @@
 package de.juplo.kafka.chat.backend.api;
 
+import de.juplo.kafka.chat.backend.ChatBackendProperties;
 import de.juplo.kafka.chat.backend.domain.ChatHomeService;
 import de.juplo.kafka.chat.backend.domain.ChatRoomData;
 import de.juplo.kafka.chat.backend.implementation.StorageStrategy;
-import lombok.RequiredArgsConstructor;
 import org.springframework.http.codec.ServerSentEvent;
 import org.springframework.web.bind.annotation.*;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
 import java.util.UUID;
+import java.util.logging.Level;
 
 
 @RestController
-@RequiredArgsConstructor
 public class ChatBackendController
 {
   private final ChatHomeService chatHomeService;
   private final StorageStrategy storageStrategy;
+  private final Level loggingLevel;
+  private final boolean showOperatorLine;
+
+
+  public ChatBackendController(
+      ChatHomeService chatHomeService,
+      StorageStrategy storageStrategy,
+      ChatBackendProperties properties)
+  {
+    this.chatHomeService = chatHomeService;
+    this.storageStrategy = storageStrategy;
+    this.loggingLevel = properties.getProjectreactor().getLoggingLevel();
+    this.showOperatorLine = properties.getProjectreactor().isShowOperatorLine();
+  }
 
 
   @PostMapping("create")
@@ -118,7 +132,10 @@ public class ChatBackendController
   {
     return chatRoomData
         .listen()
-        .log()
+        .log(
+            ChatBackendController.class.getSimpleName(),
+            loggingLevel,
+            showOperatorLine)
         .map(message -> MessageTo.from(message))
         .map(messageTo ->
             ServerSentEvent