diff --git a/manager.cpp b/manager.cpp
index fe0f605..998f22d 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -2,7 +2,7 @@
 
 #include "manager.hpp"
 
-#include <phosphor-logging/log.hpp>
+#include <phosphor-logging/lg2.hpp>
 #include <sdbusplus/exception.hpp>
 #include <xyz/openbmc_project/Led/Physical/server.hpp>
 
@@ -14,8 +14,6 @@
 namespace led
 {
 
-using namespace phosphor::logging;
-
 // Assert -or- De-assert
 bool Manager::setGroupState(const std::string& path, bool assert,
                             group& ledsAssert, group& ledsDeAssert)
@@ -125,8 +123,7 @@
         for (const auto& it : ledsDeAssert)
         {
             std::string objPath = std::string(PHY_LED_PATH) + it.name;
-            log<level::DEBUG>("De-Asserting LED",
-                              entry("NAME=%s", it.name.c_str()));
+            lg2::debug("De-Asserting LED, NAME = {NAME}", "NAME", it.name);
             drivePhysicalLED(objPath, Layout::Action::Off, it.dutyOn,
                              it.period);
         }
@@ -137,8 +134,7 @@
         for (const auto& it : ledsAssert)
         {
             std::string objPath = std::string(PHY_LED_PATH) + it.name;
-            log<level::DEBUG>("Asserting LED",
-                              entry("NAME=%s", it.name.c_str()));
+            lg2::debug("Asserting LED, NAME = {NAME}", "NAME", it.name);
             drivePhysicalLED(objPath, it.action, it.dutyOn, it.period);
         }
     }
@@ -169,9 +165,9 @@
     }
     catch (const std::exception& e)
     {
-        log<level::ERR>("Error setting property for physical LED",
-                        entry("ERROR=%s", e.what()),
-                        entry("OBJECT_PATH=%s", objPath.c_str()));
+        lg2::error(
+            "Error setting property for physical LED, ERROR = {ERROR}, OBJECT_PATH = {PATH}",
+            "ERROR", e, "PATH", objPath);
     }
 
     return;
