diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientResponse.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientResponse.java index 5c6eaa0cf1..6c5bf5b795 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientResponse.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientResponse.java @@ -204,6 +204,19 @@ public interface ClientResponse { */ Mono createException(); + /** + * Return a log message prefix to use to correlate messages for this response. + * The prefix is based on the {@linkplain ClientRequest#logPrefix() client + * log prefix}, which itself is based on the value of the request attribute + * {@link ClientRequest#LOG_ID_ATTRIBUTE} along with some extra formatting + * so that the prefix can be conveniently prepended with no further + * formatting no separators required. + * @return the log message prefix or an empty String if the + * {@link ClientRequest#LOG_ID_ATTRIBUTE} was not set. + * @since 5.2.3 + */ + String logPrefix(); + // Static builder methods diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponse.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponse.java index 11d64b9f7f..c148c80ee0 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponse.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponse.java @@ -225,6 +225,11 @@ class DefaultClientResponse implements ClientResponse { }); } + @Override + public String logPrefix() { + return this.logPrefix; + } + // Used by DefaultClientResponseBuilder HttpRequest request() { return this.requestSupplier.get(); diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/support/ClientResponseWrapper.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/support/ClientResponseWrapper.java index 8c98310ce5..3b558eeee3 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/support/ClientResponseWrapper.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/support/ClientResponseWrapper.java @@ -153,6 +153,11 @@ public class ClientResponseWrapper implements ClientResponse { return this.delegate.createException(); } + @Override + public String logPrefix() { + return this.delegate.logPrefix(); + } + /** * Implementation of the {@code Headers} interface that can be subclassed * to adapt the headers in a