diff --git a/testing/indexer-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java b/testing/indexer-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
index 07a94a76e2443a0b3358e2169e237949b39054fc..7c04d89e90b3b29a32a88052747f574fa7e87602 100644
--- a/testing/indexer-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
+++ b/testing/indexer-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
@@ -14,16 +14,18 @@
 
 package org.opengroup.osdu.util;
 
+
 import com.sun.jersey.api.client.Client;
 import com.sun.jersey.api.client.ClientResponse;
 import com.sun.jersey.api.client.WebResource;
 import lombok.ToString;
-import lombok.extern.java.Log;
+import lombok.extern.slf4j.Slf4j;
 
 import javax.ws.rs.core.Response;
-import java.net.SocketTimeoutException;
 import java.util.Map;
-@Log
+import java.util.UUID;
+
+@Slf4j
 @ToString
 public class AzureHTTPClient extends HTTPClient {
 
@@ -41,42 +43,42 @@ public class AzureHTTPClient extends HTTPClient {
         return token;
     }
     public ClientResponse send(String httpMethod, String url, String payLoad, Map<String, String> headers, String token) {
-        ClientResponse response;
+        ClientResponse response = null;
         System.out.println("in Azure send method");
-        String correlationId = java.util.UUID.randomUUID().toString();
-        log.info(String.format("Request correlation id: %s", correlationId));
-        headers.put(HEADER_CORRELATION_ID, correlationId);
         Client client = getClient();
         client.setReadTimeout(300000);
         client.setConnectTimeout(300000);
-        log.info(String.format("httpMethod: %s", httpMethod));
-        log.info(String.format("payLoad: %s", payLoad));
-        log.info(String.format("headers: %s", headers));
-        log.info(String.format("URL: %s", url));
         WebResource webResource = client.resource(url);
         log.info("waiting on response in azure send");
-        int retryCount = 2;
-        try{
-            response = this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
-            while (retryCount > 0) {
+        int count = 1;
+        int MaxRetry = 3;
+        while (count < MaxRetry) {
+            try {
+                headers.put("correlation-id", headers.getOrDefault("correlation-id", UUID.randomUUID().toString()));
+                //removing Auth header before logging
+                headers.remove("Authorization");
+                log.info(String.format("Request method: %s\nHeaders: %s\nRequest Body: %s", httpMethod, headers, indentatedResponseBody(payLoad)));
+                log.info(String.format("Attempt: #%s/%s, CorrelationId: %s", count, MaxRetry, headers.get("correlation-id")));
+                response = this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
                 if (response.getStatusInfo().getFamily().equals(Response.Status.Family.valueOf("SERVER_ERROR"))) {
-                    log.info(String.format("got resoponse : %s", response.getStatusInfo()));
+                    count++;
                     Thread.sleep(5000);
-                    log.info(String.format("Retrying --- "));
-                    response = this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
-                } else
+                    continue;
+                } else {
                     break;
-                retryCount--;
-            }
-            System.out.println("sending response from azure send method");
-            return response;
-        } catch (Exception e) {
-            if (e.getCause() instanceof SocketTimeoutException) {
-                System.out.println("Retrying in case of socket timeout exception");
-                return this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
+                }
+            } catch (Exception ex) {
+                log.error("Exception While Making Request: ", ex);
+                count++;
+                if (count == MaxRetry) {
+                    throw new AssertionError("Error: Send request error", ex);
+                }
+            } finally {
+                if (response != null) {
+                    log.info(String.format("This is the response received : %s\nHeaders: %s\nStatus code: %s", response, response.getHeaders(), response.getStatus()));
+                }
             }
-            e.printStackTrace();
-            throw new AssertionError("Error: Send request error", e);
         }
+        return response;
     }
 }
diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/RecordSteps.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/RecordSteps.java
index da0676cf610850a43b80e0f31cc6e465525b2de1..a8eaad72125b7a07a9ae4826bffce7b1b6da8e29 100644
--- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/RecordSteps.java
+++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/RecordSteps.java
@@ -31,6 +31,7 @@ import java.util.logging.Level;
 import static org.junit.Assert.*;
 import static org.opengroup.osdu.util.Config.getEntitlementsDomain;
 import static org.opengroup.osdu.util.Config.getStorageBaseURL;
+import static org.opengroup.osdu.util.HTTPClient.indentatedResponseBody;
 
 @Log
 public class RecordSteps extends TestsBase {
@@ -127,6 +128,7 @@ public class RecordSteps extends TestsBase {
             String payLoad = new Gson().toJson(records);
             log.log(Level.INFO, "Start ingesting records={0}", payLoad);
             ClientResponse clientResponse = httpClient.send(HttpMethod.PUT, getStorageBaseURL() + "records", payLoad, headers, httpClient.getAccessToken());
+            log.info(String.format("Response body: %s\n Correlation id: %s\nResponse Status code: %s", indentatedResponseBody(clientResponse.getEntity(String.class)), clientResponse.getHeaders().get("correlation-id"), clientResponse.getStatus()));
             assertEquals(201, clientResponse.getStatus());
         } catch (Exception ex) {
             throw new AssertionError(ex.getMessage());
diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/TestsBase.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/TestsBase.java
index c441a25ed892793d9ff5885c3d36a5382e8f0f15..fe1634cf9636dd9a1127c214a9e93e675bc0c61c 100644
--- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/TestsBase.java
+++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/TestsBase.java
@@ -21,6 +21,7 @@ import java.util.*;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.opengroup.osdu.util.Config.*;
+import static org.opengroup.osdu.util.HTTPClient.indentatedResponseBody;
 
 @Log
 public abstract class TestsBase {
@@ -120,10 +121,10 @@ public abstract class TestsBase {
         T response = new Gson().fromJson(responseEntity, typeParameterClass);
         response.setHeaders(clientResponse.getHeaders());
         response.setResponseCode(clientResponse.getStatus());
+        log.info(String.format("Response body: %s\nCorrelation id: %s\nResponse Status code: %s", indentatedResponseBody(responseEntity), response.getHeaders().get("correlation-id"), response.getResponseCode()));
         return response;
     }
 
-
     private void logCorrelationIdWithFunctionName(MultivaluedMap<String, String> headers) {
         log.info(String.format("Scenario Name: %s, Correlation-Id: %s", scenario.getId(), headers.get("correlation-id")));
     }
diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/TestIndex.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/TestIndex.java
index 0bc1eae64f034cfebe4ded22f9e999e39c3ec782..db437dea8717a2681baf1033889f2994abd75358 100644
--- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/TestIndex.java
+++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/TestIndex.java
@@ -8,11 +8,11 @@ import lombok.Data;
 
 import javax.ws.rs.HttpMethod;
 
+import org.opengroup.osdu.util.HTTPClient;
 import org.opengroup.osdu.core.common.model.entitlements.Acl;
 import org.opengroup.osdu.core.common.model.legal.Legal;
 import org.opengroup.osdu.util.ElasticUtils;
 import org.opengroup.osdu.util.FileHandler;
-import org.opengroup.osdu.util.HTTPClient;
 import org.opengroup.osdu.util.IndexerClientUtil;
 
 import java.util.HashSet;
@@ -23,6 +23,7 @@ import java.util.logging.Logger;
 
 import static org.junit.Assert.assertEquals;
 import static org.opengroup.osdu.util.Config.*;
+import static org.opengroup.osdu.util.HTTPClient.indentatedResponseBody;
 
 @Data
 public class TestIndex {
@@ -60,8 +61,9 @@ public class TestIndex {
 
     public void setupSchema() {
         ClientResponse clientResponse = this.httpClient.send(HttpMethod.POST, getStorageBaseURL() + "schemas", this.getStorageSchemaFromJson(), headers, httpClient.getAccessToken());
-        if (clientResponse.getType() != null)
-            LOGGER.info(String.format("Response status: %s, type: %s", clientResponse.getStatus(), clientResponse.getType().toString()));
+        if (clientResponse.getType() != null) {
+            LOGGER.info(String.format("Response status: %s, type: %s\nResponse body: %s", clientResponse.getStatus(), clientResponse.getType().toString(), indentatedResponseBody(clientResponse.getEntity(String.class))));
+        }
     }
 
     public void deleteSchema(String kind) {
@@ -142,4 +144,4 @@ public class TestIndex {
         return legal;
     }
 
-}
\ No newline at end of file
+}
diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
index dde76bb8801939a4d148925d563181fcfde2ff35..411a02f2fb9e50620bad6aedad99047412f6b291 100644
--- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
+++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
@@ -1,5 +1,8 @@
 package org.opengroup.osdu.util;
 
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParser;
 import com.sun.jersey.api.client.Client;
 import com.sun.jersey.api.client.ClientResponse;
 import com.sun.jersey.api.client.WebResource;
@@ -91,4 +94,14 @@ public abstract class HTTPClient {
         currentHeaders.put("data-partition-id", value);
         return currentHeaders;
     }
+    
+    public static String indentatedResponseBody(String responseBody) {
+        JsonParser jsonParser = new JsonParser();
+        if(responseBody!= null) {
+            JsonElement jsonElement = jsonParser.parse(responseBody);
+            String indentedResponseEntity = new GsonBuilder().setPrettyPrinting().create().toJson(jsonElement);
+            return indentedResponseEntity;
+        }
+        return responseBody;
+    }
 }