From 951d1745e3c3e4450fa62c8b8e191b9f131b282e Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Wed, 10 Jun 2026 15:36:31 +0100 Subject: [PATCH 1/2] logging improvements --- .../uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java | 3 ++- .../gpc/consumer/sds/builder/SdsRequestBuilder.java | 3 ++- .../gpc/consumer/web/WebClientFilterService.java | 10 +++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java index 0557f483..6dde9a64 100644 --- a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java +++ b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java @@ -161,7 +161,8 @@ private String getAddressFromEndpoint(Endpoint endpoint) { private Mono performRequest(RequestHeadersSpec> request) { return request.retrieve() - .bodyToMono(String.class); + .bodyToMono(String.class) + .doOnError(e -> LOGGER.error("SDS request failed: {}", e.getMessage())); } @Builder diff --git a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java index adcd6852..5d042b07 100644 --- a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java +++ b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java @@ -171,7 +171,8 @@ private HttpClient getHttpClient() { } private void addWebClientFilters(List filters) { - filters.add(webClientFilterService.errorHandlingFilter(WebClientFilterService.RequestType.SDS, HttpStatus.OK)); filters.add(webClientFilterService.logRequest()); + filters.add(webClientFilterService.logResponse()); + filters.add(webClientFilterService.errorHandlingFilter(WebClientFilterService.RequestType.SDS, HttpStatus.OK)); } } diff --git a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/web/WebClientFilterService.java b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/web/WebClientFilterService.java index 78e08e3c..67c502d2 100644 --- a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/web/WebClientFilterService.java +++ b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/web/WebClientFilterService.java @@ -43,16 +43,24 @@ public ExchangeFilterFunction errorHandlingFilter(RequestType requestType, HttpS public ExchangeFilterFunction logRequest() { return (clientRequest, next) -> { + LOGGER.info("Outbound request: {} {}", clientRequest.method(), clientRequest.url()); if (LOGGER.isDebugEnabled()) { var headers = clientRequest.headers().entrySet().stream() .map(e -> e.getKey() + ": " + e.getValue()) .collect(Collectors.joining(System.lineSeparator())); - LOGGER.debug("Request: {} {} \n{}", clientRequest.method(), clientRequest.url(), headers); + LOGGER.debug("Outbound request headers for {} {}:\n{}", clientRequest.method(), clientRequest.url(), headers); } return next.exchange(clientRequest); }; } + public ExchangeFilterFunction logResponse() { + return ExchangeFilterFunction.ofResponseProcessor(clientResponse -> { + LOGGER.info("Outbound response status: {}", clientResponse.statusCode()); + return Mono.just(clientResponse); + }); + } + private Mono getResponseError(ClientResponse clientResponse, RequestType requestType) { var exceptionBuilder = REQUEST_TYPE_TO_EXCEPTION_MAP .getOrDefault(requestType, InvalidOutboundMessageException::new); From 2e3221a0b0e556c2ca2f147e86b45299d3575017 Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Wed, 10 Jun 2026 16:09:51 +0100 Subject: [PATCH 2/2] review refactoring --- .../main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java | 2 +- .../adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java index 6dde9a64..d2dc99d4 100644 --- a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java +++ b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java @@ -162,7 +162,7 @@ private String getAddressFromEndpoint(Endpoint endpoint) { private Mono performRequest(RequestHeadersSpec> request) { return request.retrieve() .bodyToMono(String.class) - .doOnError(e -> LOGGER.error("SDS request failed: {}", e.getMessage())); + .doOnError(e -> LOGGER.error("SDS request failed: {}", e)); } @Builder diff --git a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java index 5d042b07..134951a4 100644 --- a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java +++ b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java @@ -172,7 +172,7 @@ private HttpClient getHttpClient() { private void addWebClientFilters(List filters) { filters.add(webClientFilterService.logRequest()); - filters.add(webClientFilterService.logResponse()); filters.add(webClientFilterService.errorHandlingFilter(WebClientFilterService.RequestType.SDS, HttpStatus.OK)); + filters.add(webClientFilterService.logResponse()); } }