diff --git a/log_manager.hpp b/log_manager.hpp
index cd5ae1d..2535832 100644
--- a/log_manager.hpp
+++ b/log_manager.hpp
@@ -2,14 +2,14 @@
 
 #include "elog_block.hpp"
 #include "elog_entry.hpp"
-#include "xyz/openbmc_project/Collection/DeleteAll/server.hpp"
-#include "xyz/openbmc_project/Logging/Create/server.hpp"
-#include "xyz/openbmc_project/Logging/Entry/server.hpp"
 #include "xyz/openbmc_project/Logging/Internal/Manager/server.hpp"
-#include "xyz/openbmc_project/Logging/error.hpp"
 
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
+#include <xyz/openbmc_project/Collection/DeleteAll/server.hpp>
+#include <xyz/openbmc_project/Logging/Create/server.hpp>
+#include <xyz/openbmc_project/Logging/Entry/server.hpp>
+#include <xyz/openbmc_project/Logging/event.hpp>
 
 #include <list>
 
@@ -26,8 +26,7 @@
     sdbusplus::server::xyz::openbmc_project::collection::DeleteAll;
 
 using Severity = sdbusplus::xyz::openbmc_project::Logging::server::Entry::Level;
-using LogsCleared =
-    sdbusplus::xyz::openbmc_project::Logging::Error::LogsCleared;
+using LoggingCleared = sdbusplus::event::xyz::openbmc_project::Logging::Cleared;
 
 namespace details
 {
@@ -187,6 +186,13 @@
                 const FFDCEntries& ffdc = FFDCEntries{})
         -> sdbusplus::message::object_path;
 
+    /** @brief Create an internal event log from the sdbusplus generated event
+     *
+     *  @param[in] event - The event to create.
+     */
+    auto createFromEvent(sdbusplus::exception::generated_event_base&& event)
+        -> sdbusplus::message::object_path;
+
     /** @brief Common wrapper for creating an Entry object
      *
      * @return true if quiesce on error setting is enabled, false otherwise
@@ -351,10 +357,8 @@
     {
         log<level::INFO>("Deleting all log entries");
         auto numbersOfLogs = manager.eraseAll();
-        std::map<std::string, std::string> additionalData;
-        additionalData.emplace("NUM_LOGS", std::to_string(numbersOfLogs));
-        manager.create(LogsCleared::errName, Severity::Informational,
-                       additionalData);
+        manager.createFromEvent(
+            LoggingCleared("NUMBER_OF_LOGS", numbersOfLogs));
     }
 
     /** @brief D-Bus method call implementation to create an event log.
