diff --git a/phosphor-rsyslog-config/server-conf.cpp b/phosphor-rsyslog-config/server-conf.cpp
new file mode 100644
index 0000000..16c792d
--- /dev/null
+++ b/phosphor-rsyslog-config/server-conf.cpp
@@ -0,0 +1,42 @@
+#include "server-conf.hpp"
+#include "utils.hpp"
+#include <fstream>
+
+namespace phosphor
+{
+namespace rsyslog_config
+{
+
+namespace utils = phosphor::rsyslog_utils;
+
+std::string Server::address(std::string value)
+{
+    writeConfig(value, port(), configFilePath.c_str());
+    auto result = NetworkClient::address(value);
+    return result;
+}
+
+uint16_t Server::port(uint16_t value)
+{
+    writeConfig(address(), value, configFilePath.c_str());
+    auto result = NetworkClient::port(value);
+    return result;
+}
+
+void Server::writeConfig(
+                 const std::string& serverAddress,
+                 uint16_t serverPort,
+                 const char* filePath)
+{
+    if (serverPort && !serverAddress.empty())
+    {
+        std::fstream stream(filePath, std::fstream::out);
+        // write '*.* @@remote-host:port'
+        stream << "*.* @@" << serverAddress << ":" << serverPort;
+
+        utils::restart();
+    }
+}
+
+} // namespace rsyslog_config
+} // namespace phosphor
