diff --git a/utils.cpp b/utils.cpp
index d9a98ee..c68913d 100644
--- a/utils.cpp
+++ b/utils.cpp
@@ -1,6 +1,6 @@
-#include <string>
-#include <sdbusplus/bus.hpp>
 #include <phosphor-logging/elog-errors.hpp>
+#include <sdbusplus/bus.hpp>
+#include <string>
 #include <xyz/openbmc_project/Common/error.hpp>
 namespace open_power
 {
@@ -9,17 +9,16 @@
 
 // For throwing exceptions
 using namespace phosphor::logging;
-using InternalFailure = sdbusplus::xyz::openbmc_project::Common::
-                            Error::InternalFailure;
+using InternalFailure =
+    sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure;
 
-std::string getService(sdbusplus::bus::bus& bus,
-                       const std::string& path,
+std::string getService(sdbusplus::bus::bus& bus, const std::string& path,
                        const std::string& intf)
 {
-    auto mapperCall = bus.new_method_call("xyz.openbmc_project.ObjectMapper",
-                                          "/xyz/openbmc_project/object_mapper",
-                                          "xyz.openbmc_project.ObjectMapper",
-                                          "GetObject");
+    auto mapperCall =
+        bus.new_method_call("xyz.openbmc_project.ObjectMapper",
+                            "/xyz/openbmc_project/object_mapper",
+                            "xyz.openbmc_project.ObjectMapper", "GetObject");
 
     mapperCall.append(path);
     mapperCall.append(std::vector<std::string>({intf}));
@@ -29,8 +28,8 @@
     if (mapperResponseMsg.is_method_error())
     {
         log<level::ERR>("ERROR in getting service",
-                entry("PATH=%s",path.c_str()),
-                entry("INTERFACE=%s",intf.c_str()));
+                        entry("PATH=%s", path.c_str()),
+                        entry("INTERFACE=%s", intf.c_str()));
 
         elog<InternalFailure>();
     }
@@ -41,8 +40,8 @@
     if (mapperResponse.begin() == mapperResponse.end())
     {
         log<level::ERR>("ERROR reading mapper response",
-                entry("PATH=%s",path.c_str()),
-                entry("INTERFACE=%s",intf.c_str()));
+                        entry("PATH=%s", path.c_str()),
+                        entry("INTERFACE=%s", intf.c_str()));
 
         elog<InternalFailure>();
     }
