diff --git a/log_manager_main.cpp b/log_manager_main.cpp
index c5e426b..10b6e76 100644
--- a/log_manager_main.cpp
+++ b/log_manager_main.cpp
@@ -1,22 +1,27 @@
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server/manager.hpp>
 #include "config.h"
 #include "log_manager.hpp"
-#include <sdbusplus/bus.hpp>
-#include <cstdlib>
-#include <iostream>
-#include <exception>
 
 int main(int argc, char *argv[])
 {
-    try {
-        auto manager = phosphor::logging::Manager(
-                sdbusplus::bus::new_system(),
-                BUSNAME_LOGGING,
-                OBJ_INTERNAL);
-        manager.run();
-        exit(EXIT_SUCCESS);
+    auto bus = sdbusplus::bus::new_default();
+
+    // Add sdbusplus ObjectManager.
+    sdbusplus::server::manager::manager objManager(bus, OBJ_INTERNAL);
+
+    phosphor::logging::Manager manager(bus, OBJ_INTERNAL);
+
+    bus.request_name(BUSNAME_LOGGING);
+
+    // TODO Create error log dbus object on demand, when the Commit interface
+    // creates an error log it'd call this entry interface to create an object.
+
+    while(true)
+    {
+        bus.process_discard();
+        bus.wait();
     }
-    catch (const std::exception &e) {
-        std::cerr << e.what() << std::endl;
-    }
-    exit(EXIT_FAILURE);
+
+    return 0;
 }
