> reqHeaders : httpRequest.headers().map().entrySet()) {
- StringJoiner values = new StringJoiner(";");
- for (String value : reqHeaders.getValue()) {
- values.add(value);
- }
- String header = reqHeaders.getKey() + ": [" + values + "]";
- headers.add(header);
- }
if (response == null) {
log.warn("Null Http response for request " + httpRequest.uri().toString());
log.info(
"Got response for a request.\n Request:\n URL: {}\n " +
- "Method: {}\n Headers: {}\n Params/Body: {}\nResponse: null",
+ "Method: {}\n Params/Body: {}\nResponse: null",
httpRequest.uri().toString(),
httpRequest.method(),
- headers,
requestEntry.getLookupQueryInfo()
);
} else {
log.info(
"Got response for a request.\n Request:\n URL: {}\n " +
- "Method: {}\n Headers: {}\n Params/Body: {}\nResponse: {}\n Body: {}",
+ "Method: {}\n Params/Body: {}\nResponse status code: {}\n",
httpRequest.uri().toString(),
httpRequest.method(),
- headers,
requestEntry.getLookupQueryInfo(),
- response,
- response.body().replaceAll(ConfigUtils.UNIVERSAL_NEW_LINE_REGEXP, "")
+ response.statusCode()
);
}
-
}
}
diff --git a/src/main/java/com/getindata/connectors/http/internal/table/sink/Slf4jHttpPostRequestCallback.java b/src/main/java/com/getindata/connectors/http/internal/table/sink/Slf4jHttpPostRequestCallback.java
index b5f2049d..65d6a61c 100644
--- a/src/main/java/com/getindata/connectors/http/internal/table/sink/Slf4jHttpPostRequestCallback.java
+++ b/src/main/java/com/getindata/connectors/http/internal/table/sink/Slf4jHttpPostRequestCallback.java
@@ -1,19 +1,17 @@
package com.getindata.connectors.http.internal.table.sink;
import java.net.http.HttpResponse;
-import java.nio.charset.StandardCharsets;
import java.util.Map;
-import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import com.getindata.connectors.http.HttpPostRequestCallback;
import com.getindata.connectors.http.internal.sink.httpclient.HttpRequest;
-import com.getindata.connectors.http.internal.utils.ConfigUtils;
/**
* A {@link HttpPostRequestCallback} that logs pairs of request and response as INFO level
- * logs using Slf4j.
+ * logs using Slf4j. As the request/response body or header might contain sensitive information,
+ * we do not log those values.
*
* Serving as a default implementation of {@link HttpPostRequestCallback} for
* the {@link HttpDynamicSink}.
@@ -28,25 +26,23 @@ public void call(
String endpointUrl,
Map headerMap) {
- String requestBody = requestEntry.getElements().stream()
- .map(element -> new String(element, StandardCharsets.UTF_8))
- .collect(Collectors.joining());
+ // Uncomment if you want to see the requestBody in the log
+ //String requestBody = requestEntry.getElements().stream()
+ // .map(element -> new String(element, StandardCharsets.UTF_8))
+ // .collect(Collectors.joining());
if (response == null) {
log.info(
"Got response for a request.\n Request:\n " +
- "Method: {}\n Body: {}\n Response: null",
- requestEntry.getMethod(),
- requestBody
+ "Method: {}\n Response: null",
+ requestEntry.getMethod()
);
} else {
log.info(
"Got response for a request.\n Request:\n " +
- "Method: {}\n Body: {}\n Response: {}\n Body: {}",
+ "Method: {}\n Response status code: {}\n ",
requestEntry.method,
- requestBody,
- response,
- response.body().replaceAll(ConfigUtils.UNIVERSAL_NEW_LINE_REGEXP, "")
+ response.statusCode()
);
}
}
diff --git a/src/test/resources/simpleLogger.properties b/src/test/resources/simpleLogger.properties
new file mode 100644
index 00000000..3e7cd429
--- /dev/null
+++ b/src/test/resources/simpleLogger.properties
@@ -0,0 +1,2 @@
+org.slf4j.simpleLogger.defaultLogLevel=INFO
+org.slf4j.simpleLogger.log.com.getindata.connectors.http.internal.table.lookup.RequestAndResponseLogger=DEBUG