diff --git a/extensions/openpower-pels/data_interface.cpp b/extensions/openpower-pels/data_interface.cpp
index deb4ba4..8b63726 100644
--- a/extensions/openpower-pels/data_interface.cpp
+++ b/extensions/openpower-pels/data_interface.cpp
@@ -36,6 +36,8 @@
 constexpr auto systemInv = "/xyz/openbmc_project/inventory/system";
 constexpr auto hostState = "/xyz/openbmc_project/state/host0";
 constexpr auto pldm = "/xyz/openbmc_project/pldm";
+constexpr auto enableHostPELs =
+    "/xyz/openbmc_project/logging/send_event_logs_to_host";
 } // namespace object_path
 
 namespace interface
@@ -45,6 +47,7 @@
 constexpr auto invAsset = "xyz.openbmc_project.Inventory.Decorator.Asset";
 constexpr auto osStatus = "xyz.openbmc_project.State.OperatingSystem.Status";
 constexpr auto pldmRequester = "xyz.openbmc_project.PLDM.Requester";
+constexpr auto enable = "xyz.openbmc_project.Object.Enable";
 } // namespace interface
 
 using namespace sdbusplus::xyz::openbmc_project::State::OperatingSystem::server;
@@ -89,6 +92,13 @@
                 setHostState(false);
             }
         }));
+
+    // Watch the host PEL enable property
+    _properties.emplace_back(std::make_unique<PropertyWatcher<DataInterface>>(
+        bus, object_path::enableHostPELs, interface::enable, "Enabled", *this,
+        [this](const auto& value) {
+            this->_sendPELsToHost = std::get<bool>(value);
+        }));
 }
 
 DBusPropertyMap
diff --git a/extensions/openpower-pels/data_interface.hpp b/extensions/openpower-pels/data_interface.hpp
index a275e4d..b3ed60d 100644
--- a/extensions/openpower-pels/data_interface.hpp
+++ b/extensions/openpower-pels/data_interface.hpp
@@ -163,6 +163,16 @@
         return std::nullopt;
     }
 
+    /**
+     * @brief Returns the 'send event logs to host' setting.
+     *
+     * @return bool - If sending PELs to the host is enabled.
+     */
+    virtual bool getHostPELEnablement() const
+    {
+        return _sendPELsToHost;
+    }
+
   protected:
     /**
      * @brief Sets the host on/off state and runs any
@@ -231,6 +241,13 @@
      * @brief The BMC firmware version ID string
      */
     std::string _bmcFWVersionID;
+
+    /**
+     * @brief If sending PELs is enabled.
+     *
+     * This is usually set to false in manufacturing test.
+     */
+    bool _sendPELsToHost = true;
 };
 
 /**
@@ -273,6 +290,7 @@
      */
     DBusService getService(const std::string& objectPath,
                            const std::string& interface) const;
+
     /**
      * @brief Wrapper for the 'GetAll' properties method call
      *
@@ -285,7 +303,6 @@
     DBusPropertyMap getAllProperties(const std::string& service,
                                      const std::string& objectPath,
                                      const std::string& interface) const;
-
     /**
      * @brief Wrapper for the 'Get' properties method call
      *
