diff --git a/include/async_resolve.hpp b/include/async_resolve.hpp
index 0945001..7387f4d 100644
--- a/include/async_resolve.hpp
+++ b/include/async_resolve.hpp
@@ -89,7 +89,8 @@
                         return;
                     }
                     endpoint.port(portNum);
-                    BMCWEB_LOG_DEBUG << "resolved endpoint is : " << endpoint;
+                    BMCWEB_LOG_DEBUG << "resolved endpoint is : "
+                                     << endpoint.address().to_string();
                     endpointList.push_back(endpoint);
                 }
                 // All the resolved data is filled in the endpointList
diff --git a/include/ibm/management_console_rest.hpp b/include/ibm/management_console_rest.hpp
index a9e0ec4..8e30746 100644
--- a/include/ibm/management_console_rest.hpp
+++ b/include/ibm/management_console_rest.hpp
@@ -136,7 +136,7 @@
 
     // Form the file path
     loc /= fileID;
-    BMCWEB_LOG_DEBUG << "Writing to the file: " << loc;
+    BMCWEB_LOG_DEBUG << "Writing to the file: " << loc.string();
 
     // Check if the same file exists in the directory
     bool fileExists = std::filesystem::exists(loc, ec);
@@ -305,7 +305,7 @@
         "/var/lib/bmcweb/ibm-management-console/configfiles/" + fileID);
     if (!std::filesystem::exists(loc))
     {
-        BMCWEB_LOG_ERROR << loc << "Not found";
+        BMCWEB_LOG_ERROR << loc.string() << "Not found";
         asyncResp->res.result(boost::beast::http::status::not_found);
         asyncResp->res.jsonValue["Description"] = resourceNotFoundMsg;
         return;
diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index 9f84309..af6a720 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -2227,7 +2227,7 @@
                 if (!std::filesystem::exists(loc) ||
                     !std::filesystem::is_directory(loc))
                 {
-                    BMCWEB_LOG_ERROR << loc << "Not found";
+                    BMCWEB_LOG_ERROR << loc.string() << "Not found";
                     asyncResp->res.result(
                         boost::beast::http::status::not_found);
                     return;
diff --git a/include/webassets.hpp b/include/webassets.hpp
index 8f41f2f..36c3f8d 100644
--- a/include/webassets.hpp
+++ b/include/webassets.hpp
@@ -57,7 +57,7 @@
     std::filesystem::recursive_directory_iterator dirIter(rootpath, ec);
     if (ec)
     {
-        BMCWEB_LOG_ERROR << "Unable to find or open " << rootpath
+        BMCWEB_LOG_ERROR << "Unable to find or open " << rootpath.string()
                          << " static file hosting disabled";
         return;
     }
@@ -117,7 +117,7 @@
             {
                 // Got a duplicated path.  This is expected in certain
                 // situations
-                BMCWEB_LOG_DEBUG << "Got duplicated path " << webpath;
+                BMCWEB_LOG_DEBUG << "Got duplicated path " << webpath.string();
                 continue;
             }
             const char* contentType = nullptr;
@@ -137,7 +137,7 @@
             if (contentType == nullptr)
             {
                 BMCWEB_LOG_ERROR << "Cannot determine content-type for "
-                                 << absolutePath << " with extension "
+                                 << absolutePath.string() << " with extension "
                                  << extension;
             }
 
