diff --git a/phosphor-rsyslog-config/server-conf.cpp b/phosphor-rsyslog-config/server-conf.cpp
index 1b46965..0b5bc62 100644
--- a/phosphor-rsyslog-config/server-conf.cpp
+++ b/phosphor-rsyslog-config/server-conf.cpp
@@ -2,7 +2,6 @@
 #include "utils.hpp"
 #include "xyz/openbmc_project/Common/error.hpp"
 #include <fstream>
-#include <phosphor-logging/log.hpp>
 #include <phosphor-logging/elog.hpp>
 #if __has_include("../../usr/include/phosphor-logging/elog-errors.hpp")
 #include "../../usr/include/phosphor-logging/elog-errors.hpp"
@@ -128,5 +127,28 @@
     return true;
 }
 
+void Server::restore(const char* filePath)
+{
+    std::fstream stream(filePath, std::fstream::in);
+    std::string line;
+
+    getline(stream, line);
+
+    // Ignore if line is commented
+    if ('#' != line.at(0))
+    {
+        auto pos = line.find(':');
+        if (pos != std::string::npos)
+        {
+            //"*.* @@<address>:<port>"
+            constexpr auto start = 6; // Skip "*.* @@"
+            auto serverAddress = line.substr(start, pos - start);
+            auto serverPort = line.substr(pos + 1);
+            NetworkClient::address(std::move(serverAddress));
+            NetworkClient::port(std::stoul(serverPort));
+        }
+    }
+}
+
 } // namespace rsyslog_config
 } // namespace phosphor
diff --git a/phosphor-rsyslog-config/server-conf.hpp b/phosphor-rsyslog-config/server-conf.hpp
index 795cfb6..0f67f30 100644
--- a/phosphor-rsyslog-config/server-conf.hpp
+++ b/phosphor-rsyslog-config/server-conf.hpp
@@ -3,6 +3,7 @@
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/server/object.hpp>
 #include <string>
+#include <phosphor-logging/log.hpp>
 #include "xyz/openbmc_project/Network/Client/server.hpp"
 
 namespace phosphor
@@ -10,6 +11,7 @@
 namespace rsyslog_config
 {
 
+using namespace phosphor::logging;
 using NetworkClient = sdbusplus::xyz::openbmc_project::Network::server::Client;
 using Iface = sdbusplus::server::object::object<NetworkClient>;
 
@@ -37,9 +39,19 @@
         Server(sdbusplus::bus::bus& bus,
                const std::string& path,
                const char* filePath) :
-            Iface(bus, path.c_str()),
+            Iface(bus, path.c_str(), true),
             configFilePath(filePath)
         {
+            try
+            {
+                restore(configFilePath.c_str());
+            }
+            catch(const std::exception& e)
+            {
+                log<level::ERR>(e.what());
+            }
+
+            emit_object_added();
         }
 
         using NetworkClient::address;
@@ -75,6 +87,11 @@
          */
         bool addressValid(const std::string& address);
 
+        /** @brief Populate existing config into D-Bus properties
+         *  @param[in] filePath - rsyslog config file path
+         */
+        void restore(const char* filePath);
+
         std::string configFilePath{};
 };
 
