diff --git a/lib/include/phosphor-logging/commit.hpp b/lib/include/phosphor-logging/commit.hpp
index d3b291c..fa65077 100644
--- a/lib/include/phosphor-logging/commit.hpp
+++ b/lib/include/phosphor-logging/commit.hpp
@@ -16,6 +16,16 @@
 auto commit(sdbusplus::exception::generated_event_base&& e)
     -> sdbusplus::message::object_path;
 
+/** Resolve an existing event/error.
+ *
+ *  @param logPath - The object path of the event to resolve.
+ *  @return None.
+ *
+ *  Note: Similar to elog(), this will use the default dbus connection to
+ *  perform the operation.
+ */
+void resolve(const sdbusplus::message::object_path& logPath);
+
 /** Commit a generated event/error (using async context).
  *
  *  @param ctx - The async context to use.
@@ -25,4 +35,15 @@
 auto commit(sdbusplus::async::context& ctx,
             sdbusplus::exception::generated_event_base&& e)
     -> sdbusplus::async::task<sdbusplus::message::object_path>;
+
+/** Resolve an existing event/error (using async context).
+ *
+ *  @param ctx - The async context to use.
+ *  @param logPath - The object path of the event to resolve.
+ *  @return None
+ */
+auto resolve(sdbusplus::async::context& ctx,
+             const sdbusplus::message::object_path& logPath)
+    -> sdbusplus::async::task<>;
+
 } // namespace lg2
diff --git a/lib/lg2_commit.cpp b/lib/lg2_commit.cpp
index 6916bf5..a35b91e 100644
--- a/lib/lg2_commit.cpp
+++ b/lib/lg2_commit.cpp
@@ -142,6 +142,20 @@
     return {};
 }
 
+void resolve(const sdbusplus::message::object_path& logPath)
+{
+    if constexpr (LG2_COMMIT_DBUS)
+    {
+        using details::Entry;
+
+        auto b = sdbusplus::bus::new_default();
+        auto m = b.new_method_call(Entry::default_service, logPath.str.c_str(),
+                                   "org.freedesktop.DBus.Properties", "Set");
+        m.append(Entry::interface, "Resolved", std::variant<bool>(true));
+        auto reply = b.call(m);
+    }
+}
+
 auto commit(sdbusplus::async::context& ctx,
             sdbusplus::exception::generated_event_base&& t)
     -> sdbusplus::async::task<sdbusplus::message::object_path>
@@ -164,4 +178,21 @@
     co_return {};
 }
 
+auto resolve(sdbusplus::async::context& ctx,
+             const sdbusplus::message::object_path& logPath)
+    -> sdbusplus::async::task<>
+{
+    using details::Entry;
+
+    if constexpr (LG2_COMMIT_DBUS)
+    {
+        std::string path = logPath.str;
+        co_await Entry(ctx)
+            .service(Entry::default_service)
+            .path(path)
+            .resolved(true);
+    }
+    co_return;
+}
+
 } // namespace lg2
