diff --git a/common/test/pldm_utils_test.cpp b/common/test/pldm_utils_test.cpp
index 93cf335..295d364 100644
--- a/common/test/pldm_utils_test.cpp
+++ b/common/test/pldm_utils_test.cpp
@@ -29,6 +29,38 @@
     EXPECT_EQ(model, std::string("1234 - 00Z"));
 }
 
+TEST(printBuffer, testprintBufferGoodPath)
+{
+    std::vector<uint8_t> buffer = {10, 12, 14, 25, 233};
+    std::ostringstream localString;
+    auto coutBuffer = std::cout.rdbuf();
+    std::cout.rdbuf(localString.rdbuf());
+    printBuffer(false, buffer);
+    std::cout.rdbuf(coutBuffer);
+    EXPECT_EQ(localString.str(), "Rx: 0a 0c 0e 19 e9 \n");
+    localString.str("");
+    localString.clear();
+    std::cerr << localString.str() << std::endl;
+    buffer = {12, 0, 200, 12, 255};
+    std::cout.rdbuf(localString.rdbuf());
+    printBuffer(true, buffer);
+    std::cout.rdbuf(coutBuffer);
+    EXPECT_EQ(localString.str(), "Tx: 0c 00 c8 0c ff \n");
+}
+
+TEST(printBuffer, testprintBufferBadPath)
+{
+    std::vector<uint8_t> buffer = {};
+    std::ostringstream localString;
+    auto coutBuffer = std::cout.rdbuf();
+    std::cout.rdbuf(localString.rdbuf());
+    printBuffer(false, buffer);
+    EXPECT_EQ(localString.str(), "");
+    printBuffer(true, buffer);
+    std::cout.rdbuf(coutBuffer);
+    EXPECT_EQ(localString.str(), "");
+}
+
 TEST(decodeDate, testGooduintToDate)
 {
     uint64_t data = 20191212115959;
diff --git a/common/utils.cpp b/common/utils.cpp
index 3a19e8b..6193817 100644
--- a/common/utils.cpp
+++ b/common/utils.cpp
@@ -720,24 +720,18 @@
 
 void printBuffer(bool isTx, const std::vector<uint8_t>& buffer)
 {
-    if (!buffer.empty())
+    if (buffer.empty())
     {
-        if (isTx)
-        {
-            std::cout << "Tx: ";
-        }
-        else
-        {
-            std::cout << "Rx: ";
-        }
-        std::ostringstream tempStream;
-        for (int byte : buffer)
-        {
-            tempStream << std::setfill('0') << std::setw(2) << std::hex << byte
-                       << " ";
-        }
-        std::cout << tempStream.str() << std::endl;
+        return;
     }
+
+    std::cout << (isTx ? "Tx: " : "Rx: ");
+
+    std::ranges::for_each(buffer, [](uint8_t byte) {
+        std::cout << std::format("{:02x} ", byte);
+    });
+
+    std::cout << std::endl;
 }
 
 std::string toString(const struct variable_field& var)
