diff --git a/utility.cpp b/utility.cpp
index 75ecb80..a55ffe8 100644
--- a/utility.cpp
+++ b/utility.cpp
@@ -34,7 +34,7 @@
 using json = nlohmann::json;
 
 std::string getService(const std::string& path, const std::string& interface,
-                       sdbusplus::bus::bus& bus)
+                       sdbusplus::bus::bus& bus, bool logError)
 {
     auto method = bus.new_method_call(MAPPER_BUSNAME, MAPPER_PATH,
                                       MAPPER_INTERFACE, "GetObject");
@@ -49,9 +49,12 @@
 
     if (response.empty())
     {
-        log<level::ERR>("Error in mapper response for getting service name",
-                        entry("PATH=%s", path.c_str()),
-                        entry("INTERFACE=%s", interface.c_str()));
+        if (logError)
+        {
+            log<level::ERR>("Error in mapper response for getting service name",
+                            entry("PATH=%s", path.c_str()),
+                            entry("INTERFACE=%s", interface.c_str()));
+        }
         return std::string{};
     }
 
diff --git a/utility.hpp b/utility.hpp
index 8084782..af50127 100644
--- a/utility.hpp
+++ b/utility.hpp
@@ -29,11 +29,12 @@
  * @param[in] path - the D-Bus path name
  * @param[in] interface - the D-Bus interface name
  * @param[in] bus - the D-Bus object
+ * @param[in] logError - log error when no service found
  *
  * @return The service name
  */
 std::string getService(const std::string& path, const std::string& interface,
-                       sdbusplus::bus::bus& bus);
+                       sdbusplus::bus::bus& bus, bool logError = true);
 
 /**
  * @brief Read a D-Bus property
