diff --git a/utils.cpp b/utils.cpp
index 8e0e7ed..a93fa39 100644
--- a/utils.cpp
+++ b/utils.cpp
@@ -96,6 +96,40 @@
     return gpioval;
 }
 
+void createError(
+    sdbusplus::bus::bus& bus, const std::string& errorMsg,
+    sdbusplus::xyz::openbmc_project::Logging::server::Entry::Level errLevel)
+{
+
+    try
+    {
+        // Create interface requires something for additionalData
+        std::map<std::string, std::string> additionalData;
+        additionalData.emplace("_PID", std::to_string(getpid()));
+
+        auto method = bus.new_method_call(
+            "xyz.openbmc_project.Logging", "/xyz/openbmc_project/logging",
+            "xyz.openbmc_project.Logging.Create", "Create");
+
+        method.append(errorMsg, errLevel, additionalData);
+        auto resp = bus.call(method);
+    }
+    catch (const sdbusplus::exception::exception& e)
+    {
+        error("sdbusplus D-Bus call exception, error {ERROR} trying to create "
+              "an error with {ERROR_MSG}",
+              "ERROR", e, "ERROR_MSG", errorMsg);
+
+        throw std::runtime_error(
+            "Error in invoking D-Bus logging create interface");
+    }
+    catch (const std::exception& e)
+    {
+        error("D-bus call exception: {ERROR}", "ERROR", e);
+        throw e;
+    }
+}
+
 } // namespace utils
 } // namespace manager
 } // namespace state
diff --git a/utils.hpp b/utils.hpp
index 0127206..004d97a 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <sdbusplus/bus.hpp>
+#include <xyz/openbmc_project/Logging/Entry/server.hpp>
 
 namespace phosphor
 {
@@ -42,6 +43,16 @@
  */
 int getGpioValue(const std::string& gpioName);
 
+/** @brief Create an error log
+ *
+ * @param[in] bus          - The Dbus bus object
+ * @param[in] errorMsg     - The error message
+ * @param[in] errLevel     - The error level
+ */
+void createError(
+    sdbusplus::bus::bus& bus, const std::string& errorMsg,
+    sdbusplus::xyz::openbmc_project::Logging::server::Entry::Level errLevel);
+
 } // namespace utils
 } // namespace manager
 } // namespace state
