diff --git a/configure.ac b/configure.ac
index 2c05fdd..4902c2b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -320,6 +320,24 @@
     AC_MSG_WARN([Disabling sensors cache feature])
 )
 
+# Clearing SEL through sel-logger is disabled by default; offer a way to enable it
+AC_ARG_ENABLE([sel_logger_clears_sel],
+    [ --enable-sel_logger_clears_sel   Enable/disable sel-logger to Clear SEL],
+    [case "${enableval}" in
+      yes) sel_logger_clears_sel=true ;;
+      no) sel_logger_clears_sel=false ;;
+      *) AC_MSG_ERROR([bad value ${enableval} for --enable-sel_logger_clears_sel]) ;;
+      esac],[sel_logger_clears_sel=false]
+      )
+AM_CONDITIONAL([FEATURE_SEL_LOGGER_CLEARS_SEL], [test x$sel_logger_clears_sel = xtrue])
+
+AS_IF([test x$sel_logger_clears_sel = xtrue],
+    AC_MSG_NOTICE([Enabling sel-logger to Clear SEL])
+    [cpp_flags="$cpp_flags -DFEATURE_SEL_LOGGER_CLEARS_SEL"]
+    AC_SUBST([CPPFLAGS], [$cpp_flags]),
+    AC_MSG_WARN([Disabling sel-logger to Clear SEL])
+)
+
 # Create configured output
 AC_CONFIG_FILES([
     Makefile
diff --git a/dbus-sdr/storagecommands.cpp b/dbus-sdr/storagecommands.cpp
index b76aa5e..09d71d0 100644
--- a/dbus-sdr/storagecommands.cpp
+++ b/dbus-sdr/storagecommands.cpp
@@ -97,6 +97,8 @@
     boost::container::flat_map<sdbusplus::message::object_path, ObjectType>;
 using ManagedEntry = std::pair<sdbusplus::message::object_path, ObjectType>;
 
+constexpr static const char* selLoggerServiceName =
+    "xyz.openbmc_project.Logging.IPMI";
 constexpr static const char* fruDeviceServiceName =
     "xyz.openbmc_project.FruDevice";
 constexpr static const char* entityManagerServiceName =
@@ -1128,6 +1130,7 @@
     // cleared
     cancelSELReservation();
 
+#ifndef FEATURE_SEL_LOGGER_CLEARS_SEL
     // Save the erase time
     dynamic_sensors::ipmi::sel::erase_time::save();
 
@@ -1156,7 +1159,20 @@
     {
         phosphor::logging::log<phosphor::logging::level::ERR>(e.what());
     }
+#else
+    boost::system::error_code ec;
+    ctx->bus->yield_method_call<>(ctx->yield, ec, selLoggerServiceName,
+                                  "/xyz/openbmc_project/Logging/IPMI",
+                                  "xyz.openbmc_project.Logging.IPMI", "Clear");
+    if (ec)
+    {
+        std::cerr << "error in clear SEL: " << ec << std::endl;
+        return ipmi::responseUnspecifiedError();
+    }
 
+    // Save the erase time
+    dynamic_sensors::ipmi::sel::erase_time::save();
+#endif
     return ipmi::responseSuccess(ipmi::sel::eraseComplete);
 }
 
