diff --git a/src/webserver_run.cpp b/src/webserver_run.cpp
index dfed2b7..eddfc5b 100644
--- a/src/webserver_run.cpp
+++ b/src/webserver_run.cpp
@@ -6,7 +6,6 @@
 #include "dbus_monitor.hpp"
 #include "dbus_singleton.hpp"
 #include "event_service_manager.hpp"
-#include "filesystem_log_watcher.hpp"
 #include "google/google_service_root.hpp"
 #include "hostname_monitor.hpp"
 #include "ibm/management_console_rest.hpp"
@@ -79,9 +78,10 @@
     if constexpr (BMCWEB_REDFISH)
     {
         redfish::RedfishService redfish(app);
-
-        // Create EventServiceManager instance and initialize Config
-        redfish::EventServiceManager::getInstance(&*io);
+        if constexpr (!BMCWEB_REDFISH_DBUS_LOG)
+        {
+            redfish::EventServiceManager::getInstance(&*io);
+        }
 
         if constexpr (BMCWEB_REDFISH_AGGREGATION)
         {
@@ -116,16 +116,6 @@
 
     crow::login_routes::requestRoutes(app);
 
-    if constexpr (!BMCWEB_REDFISH_DBUS_LOG)
-    {
-        int rc = redfish::startEventLogMonitor(*io);
-        if (rc != 0)
-        {
-            BMCWEB_LOG_ERROR("Redfish event handler setup failed...");
-            return rc;
-        }
-    }
-
     if constexpr (!BMCWEB_INSECURE_DISABLE_SSL)
     {
         BMCWEB_LOG_INFO("Start Hostname Monitor Service...");
@@ -142,8 +132,5 @@
 
     crow::connections::systemBus = nullptr;
 
-    // TODO(ed) Make event log monitor an RAII object instead of global vars
-    redfish::stopEventLogMonitor();
-
     return 0;
 }
