diff --git a/extensions/openpower-pels/tools/peltool.cpp b/extensions/openpower-pels/tools/peltool.cpp
index 643a8a2..063127f 100644
--- a/extensions/openpower-pels/tools/peltool.cpp
+++ b/extensions/openpower-pels/tools/peltool.cpp
@@ -27,7 +27,7 @@
 #include <Python.h>
 
 #include <CLI/CLI.hpp>
-#include <phosphor-logging/lg2.hpp>
+#include <phosphor-logging/log.hpp>
 
 #include <bitset>
 #include <fstream>
@@ -36,6 +36,7 @@
 #include <string>
 
 namespace fs = std::filesystem;
+using namespace phosphor::logging;
 using namespace openpower::pels;
 namespace message = openpower::pels::message;
 namespace pv = openpower::pels::pel_values;
@@ -325,7 +326,8 @@
         std::vector<uint8_t> data = getFileData(fileName);
         if (data.empty())
         {
-            lg2::error("Empty PEL file {FILE}", "FILE", fileName);
+            log<level::ERR>("Empty PEL file",
+                            entry("FILENAME=%s", fileName.c_str()));
             return listStr;
         }
         PEL pel{data};
@@ -450,8 +452,9 @@
     }
     catch (const std::exception& e)
     {
-        lg2::error("Hit exception while reading PEL File {FILE}: {ERROR}",
-                   "FILE", fileName, "ERROR", e);
+        log<level::ERR>("Hit exception while reading PEL File",
+                        entry("FILENAME=%s", fileName.c_str()),
+                        entry("ERROR=%s", e.what()));
     }
     return listStr;
 }
@@ -654,7 +657,7 @@
  */
 void deleteAllPELs()
 {
-    lg2::info("peltool deleting all event logs");
+    log<level::INFO>("peltool deleting all event logs");
 
     for (const auto& entry : fs::directory_iterator(pelLogDir()))
     {
