diff --git a/receiver/src/main.cpp b/receiver/src/main.cpp
index 01e44e8c40ef17941a6b59226245c5dcb62e88c6..ab00fa5457bbd9e5e70f9417cacb10df67dfc5e8 100644
--- a/receiver/src/main.cpp
+++ b/receiver/src/main.cpp
@@ -5,7 +5,7 @@
 #include "receiver_config_factory.h"
 #include "receiver_config.h"
 
-#include "receiver_logger.h"
+#include "receiver_data_server/receiver_data_server_logger.h"
 #include "common/version.h"
 
 #include "receiver_data_server/receiver_data_server.h"
@@ -23,16 +23,19 @@ asapo::Error ReadConfigFile(int argc, char* argv[]) {
 
 void AddDataServers(const asapo::ReceiverConfig* config, asapo::SharedCache cache,
                     std::vector<asapo::RdsNetServerPtr>& netServers) {
+    auto logger = asapo::GetDefaultReceiverDataServerLogger();
+    logger->SetLogLevel(config->log_level);
+
     auto ds_config = config->dataserver;
     auto networkingMode = ds_config.network_mode;
     if (std::find(networkingMode.begin(), networkingMode.end(), "tcp") != networkingMode.end()) {
         // Add TCP
-        netServers.emplace_back(new asapo::RdsTcpServer("0.0.0.0:" + std::to_string(ds_config.listen_port)));
+        netServers.emplace_back(new asapo::RdsTcpServer("0.0.0.0:" + std::to_string(ds_config.listen_port), logger));
     }
 
     if (std::find(networkingMode.begin(), networkingMode.end(), "fabric") != networkingMode.end()) {
         // Add Fabric
-        netServers.emplace_back(new asapo::RdsFabricServer(ds_config.advertise_uri));
+        netServers.emplace_back(new asapo::RdsFabricServer(ds_config.advertise_uri, logger));
     }
 }
 
diff --git a/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp b/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp
index a559456e5eacdaaded33a5c629f661939eeda05b..a0d682b30ebaead730c6c1cfbe33c8931ed46075 100644
--- a/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp
+++ b/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp
@@ -7,8 +7,9 @@
 
 using namespace asapo;
 
-RdsFabricServer::RdsFabricServer(std::string listenAddress): factory__(fabric::GenerateDefaultFabricFactory()), io__{GenerateDefaultIO()},
-    log__{GetDefaultReceiverDataServerLogger()}, listenAddress_(std::move(listenAddress)) {
+RdsFabricServer::RdsFabricServer(std::string listenAddress,
+                                 const AbstractLogger* logger): factory__(fabric::GenerateDefaultFabricFactory()), io__{GenerateDefaultIO()},
+    log__{logger}, listenAddress_(std::move(listenAddress)) {
 
 }
 
diff --git a/receiver/src/receiver_data_server/net_server/rds_fabric_server.h b/receiver/src/receiver_data_server/net_server/rds_fabric_server.h
index 04edcb0f2f4804e630441b691fea77568af7f4ed..2733ade39e86817717b9252d51fa1d09bb5d2a9c 100644
--- a/receiver/src/receiver_data_server/net_server/rds_fabric_server.h
+++ b/receiver/src/receiver_data_server/net_server/rds_fabric_server.h
@@ -8,7 +8,7 @@ namespace asapo {
 
 class RdsFabricServer : public RdsNetServer {
   public:
-    explicit RdsFabricServer(std::string  listenAddress);
+    explicit RdsFabricServer(std::string  listenAddress, const AbstractLogger* logger);
     ~RdsFabricServer() override;
 
     // modified in testings to mock system calls, otherwise do not touch
diff --git a/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp b/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp
index 14c6cc84c69a1e7ab5592b59f41da20daa0528de..6f9e586fd71e7818e63ff1ff8c1793d54ed683bf 100644
--- a/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp
+++ b/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp
@@ -6,7 +6,7 @@
 
 namespace asapo {
 
-RdsTcpServer::RdsTcpServer(std::string address) : io__{GenerateDefaultIO()}, log__{GetDefaultReceiverDataServerLogger()},
+RdsTcpServer::RdsTcpServer(std::string address, const AbstractLogger* logger) : io__{GenerateDefaultIO()}, log__{logger},
     address_{std::move(address)} {}
 
 Error RdsTcpServer::Initialize() {
diff --git a/receiver/src/receiver_data_server/net_server/rds_tcp_server.h b/receiver/src/receiver_data_server/net_server/rds_tcp_server.h
index 5d28f042c5800f68a4791b26712545dfd92419c4..9a588c145dad9725d0054e36a72ade3d70785aa8 100644
--- a/receiver/src/receiver_data_server/net_server/rds_tcp_server.h
+++ b/receiver/src/receiver_data_server/net_server/rds_tcp_server.h
@@ -11,7 +11,7 @@ const int kMaxPendingConnections = 5;
 
 class RdsTcpServer : public RdsNetServer {
   public:
-    explicit RdsTcpServer(std::string address);
+    explicit RdsTcpServer(std::string address, const AbstractLogger* logger);
     ~RdsTcpServer() override;
 
     Error Initialize() override;
diff --git a/receiver/src/receiver_data_server/receiver_data_server_logger.h b/receiver/src/receiver_data_server/receiver_data_server_logger.h
index c391dbe0d827627bf27edb7eb904235a16b62733..cf50590d69467a1a419222f14c1f2068fff4df53 100644
--- a/receiver/src/receiver_data_server/receiver_data_server_logger.h
+++ b/receiver/src/receiver_data_server/receiver_data_server_logger.h
@@ -1,5 +1,5 @@
-#ifndef ASAPO_RECEIVER_LOGGER_H
-#define ASAPO_RECEIVER_LOGGER_H
+#ifndef ASAPO_DATA_RECEIVER_LOGGER_H
+#define ASAPO_DATA_RECEIVER_LOGGER_H
 
 #include "logger/logger.h"
 
@@ -11,4 +11,4 @@ AbstractLogger* GetDefaultReceiverDataServerLogger();
 }
 
 
-#endif //ASAPO_RECEIVER_LOGGER_H
+#endif //ASAPO_DATA_RECEIVER_LOGGER_H
diff --git a/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp b/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
index c7580823a0455a0def0760fda4f1e0761446f9b1..9e44b551b7301e8367751edb11aad86dca6cdc33 100644
--- a/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
+++ b/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
@@ -23,15 +23,16 @@ using namespace asapo;
 std::string expected_address = "somehost:123";
 
 TEST(RdsFabricServer, Constructor) {
-    RdsFabricServer fabric_server("");
+    NiceMock<MockLogger> mock_logger;
+    RdsFabricServer fabric_server("", &mock_logger);
     ASSERT_THAT(dynamic_cast<SystemIO*>(fabric_server.io__.get()), Ne(nullptr));
     ASSERT_THAT(dynamic_cast<fabric::FabricFactory*>(fabric_server.factory__.get()), Ne(nullptr));
-    ASSERT_THAT(dynamic_cast<const AbstractLogger*>(fabric_server.log__), Ne(nullptr));
+    ASSERT_THAT(fabric_server.log__, Eq(&mock_logger));
 }
 
 class RdsFabricServerTests : public Test {
   public:
-    RdsFabricServer rds_server{expected_address};
+    RdsFabricServer rds_server{expected_address, &mock_logger};
     NiceMock<MockLogger> mock_logger;
     StrictMock<MockIO> mock_io;
     StrictMock<fabric::MockFabricFactory> mock_fabric_factory;
@@ -96,6 +97,10 @@ TEST_F(RdsFabricServerTests, Initialize_Error_DoubleInitialize) {
                 &mock_fabric_server
             ));
 
+    EXPECT_CALL(mock_fabric_server, GetAddress()).WillOnce(Return(
+            "TestAddress"
+    ));
+
     Error err = rds_server.Initialize();
     ASSERT_THAT(rds_server.server__, Ne(nullptr));
     ASSERT_THAT(err, Eq(nullptr));
diff --git a/receiver/unittests/receiver_data_server/net_server/test_rds_tcp_server.cpp b/receiver/unittests/receiver_data_server/net_server/test_rds_tcp_server.cpp
index 7b2327616500620e89649c0f3f92814f99c411e4..0c87f50d47f5715320edad6473cd69061152fd26 100644
--- a/receiver/unittests/receiver_data_server/net_server/test_rds_tcp_server.cpp
+++ b/receiver/unittests/receiver_data_server/net_server/test_rds_tcp_server.cpp
@@ -26,14 +26,16 @@ using ::testing::DoAll;
 
 using asapo::RdsTcpServer;
 using asapo::MockIO;
+using asapo::MockLogger;
 using asapo::Error;
 using asapo::ListSocketDescriptors;
 namespace {
 
 TEST(RdsTCPServer, Constructor) {
-    RdsTcpServer tcp_server("");
+    NiceMock<MockLogger> mock_logger;
+    RdsTcpServer tcp_server("", &mock_logger);
     ASSERT_THAT(dynamic_cast<asapo::IO*>(tcp_server.io__.get()), Ne(nullptr));
-    ASSERT_THAT(dynamic_cast<const asapo::AbstractLogger*>(tcp_server.log__), Ne(nullptr));
+    ASSERT_THAT(tcp_server.log__, Eq(&mock_logger));
 
 }
 
@@ -41,7 +43,7 @@ std::string expected_address = "somehost:123";
 
 class RdsTCPServerTests : public Test {
   public:
-    RdsTcpServer tcp_server {expected_address};
+    RdsTcpServer tcp_server {expected_address, &mock_logger};
     NiceMock<MockIO> mock_io;
     NiceMock<asapo::MockLogger> mock_logger;
     asapo::SocketDescriptor expected_master_socket = 1;
@@ -49,7 +51,6 @@ class RdsTCPServerTests : public Test {
     std::vector<std::string> expected_new_connections = {"test1", "test2"};
     void SetUp() override {
         tcp_server.io__ = std::unique_ptr<asapo::IO> {&mock_io};
-        tcp_server.log__ = &mock_logger;
         for (auto conn : expected_client_sockets) {
             std::string connected_uri = std::to_string(conn);
             ON_CALL(mock_io, AddressFromSocket_t(conn)).WillByDefault(Return(connected_uri));