Skip to content

Commit 10fe049

Browse files
authored
Log HTTP responses (#17)
* Log HTTP responses * Sort JSON keys for easier reading
1 parent df3fb39 commit 10fe049

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

Sources/StreamCore/HTTP/URLSessionTransport.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,12 @@ public final class URLSessionTransport: DefaultAPITransport, @unchecked Sendable
5050
}
5151

5252
func execute(request: URLRequest) async throws -> (Data, URLResponse) {
53-
log.debug(request.cURLRepresentation(in: urlSession))
53+
log.debug(request.cURLRepresentation(in: urlSession), subsystems: .httpRequests)
5454
return try await executeTask(retryPolicy: .fastAndSimple) {
5555
do {
56-
return try await execute(request: request, isRetry: false)
56+
let result = try await execute(request: request, isRetry: false)
57+
log.debug("URL request response: \(result.1), data:\n\(result.0.debugPrettyPrintedJSON))", subsystems: .httpRequests)
58+
return result
5759
} catch {
5860
if error.isTokenExpiredError && tokenProvider != nil {
5961
log.debug("Refreshing user token", subsystems: .httpRequests)

Sources/StreamCore/Logger/Logger.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ extension Data {
691691
var debugPrettyPrintedJSON: String {
692692
do {
693693
let jsonObject = try JSONSerialization.jsonObject(with: self, options: [])
694-
let prettyPrintedData = try JSONSerialization.data(withJSONObject: jsonObject, options: [.prettyPrinted])
694+
let prettyPrintedData = try JSONSerialization.data(withJSONObject: jsonObject, options: [.prettyPrinted, .sortedKeys])
695695
return String(data: prettyPrintedData, encoding: .utf8) ?? "Error: Data to String decoding failed."
696696
} catch {
697697
return "<not available string representation>"

0 commit comments

Comments
 (0)