diff --git a/http/http_client.hpp b/http/http_client.hpp
index 5f352d3..1664d01 100644
--- a/http/http_client.hpp
+++ b/http/http_client.hpp
@@ -120,13 +120,15 @@
                               const boost::asio::ip::tcp::endpoint& endpoint) {
                 if (ec)
                 {
-                    BMCWEB_LOG_ERROR << "Connect " << endpoint
+                    BMCWEB_LOG_ERROR << "Connect "
+                                     << endpoint.address().to_string()
                                      << " failed: " << ec.message();
                     self->state = ConnState::connectFailed;
                     self->handleConnState();
                     return;
                 }
-                BMCWEB_LOG_DEBUG << "Connected to: " << endpoint;
+                BMCWEB_LOG_DEBUG << "Connected to: "
+                                 << endpoint.address().to_string();
                 self->state = ConnState::connected;
                 self->handleConnState();
             });
@@ -186,7 +188,7 @@
                 BMCWEB_LOG_DEBUG << "recvMessage() bytes transferred: "
                                  << bytesTransferred;
                 BMCWEB_LOG_DEBUG << "recvMessage() data: "
-                                 << self->parser->get();
+                                 << self->parser->get().body();
 
                 unsigned int respCode = self->parser->get().result_int();
                 BMCWEB_LOG_DEBUG << "recvMessage() Header Response Code: "
diff --git a/http/http_connection.hpp b/http/http_connection.hpp
index 6a874a7..42f2e53 100644
--- a/http/http_connection.hpp
+++ b/http/http_connection.hpp
@@ -343,7 +343,7 @@
                         << " " << this << " HTTP/" << thisReq.version() / 10
                         << "." << thisReq.version() % 10 << ' '
                         << thisReq.methodString() << " " << thisReq.target()
-                        << " " << thisReq.ipAddress;
+                        << " " << thisReq.ipAddress.to_string();
 
         res.setCompleteRequestHandler(nullptr);
         res.isAliveHelper = [this]() -> bool { return isAlive(); };
diff --git a/http/http_server.hpp b/http/http_server.hpp
index bf4a091..0b2cae1 100644
--- a/http/http_server.hpp
+++ b/http/http_server.hpp
@@ -91,7 +91,7 @@
         };
 
         BMCWEB_LOG_INFO << "bmcweb server is running, local endpoint "
-                        << acceptor->local_endpoint();
+                        << acceptor->local_endpoint().address().to_string();
         startAsyncWaitForSignal();
         doAccept();
     }
@@ -115,7 +115,7 @@
             fs::create_directories(certPath);
         }
         fs::path certFile = certPath / "server.pem";
-        BMCWEB_LOG_INFO << "Building SSL Context file=" << certFile;
+        BMCWEB_LOG_INFO << "Building SSL Context file=" << certFile.string();
         std::string sslPemFile(certFile);
         ensuressl::ensureOpensslKeyPresentAndValid(sslPemFile);
         std::shared_ptr<boost::asio::ssl::context> sslContext =
