diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java index 1cfc658c8da..815b6bad20c 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java @@ -81,15 +81,20 @@ class Http1Request { private void logHeaders(String completeHeaders) { if (Log.headers()) { - //StringBuilder sb = new StringBuilder(256); - //sb.append("REQUEST HEADERS:\n"); - //Log.dumpHeaders(sb, " ", systemHeaders); - //Log.dumpHeaders(sb, " ", userHeaders); - //Log.logHeaders(sb.toString()); - - String s = completeHeaders.replaceAll("\r\n", "\n"); - if (s.endsWith("\n\n")) s = s.substring(0, s.length() - 2); - Log.logHeaders("REQUEST HEADERS:\n{0}\n", s); + StringBuilder sb = new StringBuilder(completeHeaders.length()); + sb.append("REQUEST HEADERS:\n"); + boolean[] firstLine = {true}; + completeHeaders.lines().forEach(line -> { + // First line contains `GET /foo HTTP/1.1`. + // Convert it to look like other `Log.logHeaders()` outputs. + if (firstLine[0]) { + sb.append(" ").append(line).append('\n'); + firstLine[0] = false; + } else if (!line.isBlank()) { + sb.append(" ").append(line).append('\n'); + } + }); + Log.logHeaders(sb.toString()); } } diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Response.java b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Response.java index d7222067f7e..f9442df9ac4 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Response.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Response.java @@ -224,6 +224,7 @@ class Http1Response { if (Log.headers()) { StringBuilder sb = new StringBuilder("RESPONSE HEADERS:\n"); + sb.append(" %s %s %s\n".formatted(request.method(), request.uri(), responseCode)); Log.dumpHeaders(sb, " ", headers); Log.logHeaders(sb.toString()); } diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java b/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java index 4fa970ee0eb..c33cc93e7dd 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java @@ -1685,8 +1685,8 @@ class Http2Connection { private List encodeHeaders(OutgoingHeaders> oh, Stream stream) { oh.streamid(stream.streamid); if (Log.headers()) { - StringBuilder sb = new StringBuilder("HEADERS FRAME (stream="); - sb.append(stream.streamid).append(")\n"); + StringBuilder sb = new StringBuilder("HEADERS FRAME (streamid=%s):\n".formatted(stream.streamid)); + sb.append(" %s %s\n".formatted(stream.request.method(), stream.request.uri())); Log.dumpHeaders(sb, " ", oh.getAttachment().getRequestPseudoHeaders()); Log.dumpHeaders(sb, " ", oh.getSystemHeaders()); Log.dumpHeaders(sb, " ", oh.getUserHeaders()); diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java b/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java index bfc4e75c021..b5dada882b2 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java @@ -662,7 +662,8 @@ class Stream extends ExchangeImpl { responseHeaders.firstValueAsLong("content-length"); if (Log.headers()) { - StringBuilder sb = new StringBuilder("RESPONSE HEADERS:\n"); + StringBuilder sb = new StringBuilder("RESPONSE HEADERS (streamid=%s):\n".formatted(streamid)); + sb.append(" %s %s %s\n".formatted(request.method(), request.uri(), responseCode)); Log.dumpHeaders(sb, " ", responseHeaders); Log.logHeaders(sb.toString()); } @@ -673,7 +674,7 @@ class Stream extends ExchangeImpl { completeResponse(response); } else { if (Log.headers()) { - StringBuilder sb = new StringBuilder("TRAILING HEADERS:\n"); + StringBuilder sb = new StringBuilder("TRAILING HEADERS (streamid=%s):\n".formatted(streamid)); Log.dumpHeaders(sb, " ", responseHeaders); Log.logHeaders(sb.toString()); } @@ -1770,8 +1771,8 @@ class Stream extends ExchangeImpl { responseHeaders.firstValueAsLong("content-length"); if (Log.headers()) { - StringBuilder sb = new StringBuilder("RESPONSE HEADERS"); - sb.append(" (streamid=").append(streamid).append("):\n"); + StringBuilder sb = new StringBuilder("RESPONSE HEADERS (streamid=%s):\n".formatted(streamid)); + sb.append(" %s %s %s\n".formatted(request.method(), request.uri(), responseCode)); Log.dumpHeaders(sb, " ", responseHeaders); Log.logHeaders(sb.toString()); } @@ -1782,8 +1783,8 @@ class Stream extends ExchangeImpl { completeResponse(response); } else { if (Log.headers()) { - StringBuilder sb = new StringBuilder("TRAILING HEADERS"); - sb.append(" (streamid=").append(streamid).append("):\n"); + StringBuilder sb = new StringBuilder("TRAILING HEADERS (streamid=%s):\n".formatted(streamid)); + sb.append(" %s %s %s\n".formatted(request.method(), request.uri(), responseCode)); Log.dumpHeaders(sb, " ", responseHeaders); Log.logHeaders(sb.toString()); }