Skip to content

Commit f20be6b

Browse files
committed
Added more logs.
1 parent 7f0ee3d commit f20be6b

File tree

2 files changed

+46
-3
lines changed

2 files changed

+46
-3
lines changed

Sources/Core/Client/Client.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ extension Client {
213213
/// Make a request with a given endpoint.
214214
@discardableResult
215215
func request(endpoint: TargetType, completion: @escaping ClientCompletion) -> Cancellable {
216-
logger?.log("\(endpoint)")
216+
logger?.log(endpoint)
217217

218218
return networkProvider.request(MultiTarget(endpoint)) { [weak self] result in
219219
guard let self = self else {

Sources/Core/Client/ClientLogger.swift

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//
88

99
import Foundation
10+
import Moya
1011

1112
/// A Client logger.
1213
public final class ClientLogger {
@@ -32,6 +33,48 @@ public final class ClientLogger {
3233
self.icon = icon
3334
}
3435

36+
public func log(_ endpoint: TargetType) {
37+
log("➡️ \(endpoint)")
38+
39+
switch endpoint.task {
40+
case .requestPlain,
41+
.uploadMultipart:
42+
return
43+
case .requestData(let data):
44+
if let jsonString = try? data.prettyPrintedJSONString() {
45+
log("🧾 Request Data:\n\(jsonString)")
46+
}
47+
case .requestJSONEncodable(let object),
48+
.requestCustomJSONEncodable(let object, encoder: _):
49+
log("🧾 Request JSON:\n\(object)")
50+
case .requestParameters(parameters: let parameters, encoding: _):
51+
log("🧾 Parameters: \(parameters)")
52+
case .requestCompositeData(bodyData: let data, urlParameters: let parameters):
53+
do {
54+
let jsonString = try data.prettyPrintedJSONString()
55+
log("🧾 Request Data:\n\(jsonString)")
56+
} catch {
57+
log("🧾 Request Data error decoding: \(error.localizedDescription)")
58+
}
59+
60+
log("🧾 URL parameters: \(parameters)")
61+
case .requestCompositeParameters(bodyParameters: let bodyParameters,
62+
bodyEncoding: _,
63+
urlParameters: let urlParameters):
64+
log("🧾 Body parameters: \(bodyParameters)")
65+
log("🧾 URL parameters: \(urlParameters)")
66+
case .uploadFile(let url):
67+
log("🧾 Upload URL: \(url)")
68+
case .uploadCompositeMultipart(_, urlParameters: let urlParameters):
69+
log("🧾 URL parameters: \(urlParameters)")
70+
case .downloadDestination(let destination):
71+
log("🧾 Destination parameter: \(destination)")
72+
case .downloadParameters(parameters: let parameters, encoding: _, destination: let destination):
73+
log("🧾 Parameters: \(parameters)")
74+
log("🧾 Destination: \(destination)")
75+
}
76+
}
77+
3578
/// Log URL response.
3679
///
3780
/// - Parameters:
@@ -40,14 +83,14 @@ public final class ClientLogger {
4083
/// - forceToShowData: force to always log a data.
4184
public func log(_ response: URLResponse?, data: Data?) {
4285
if let response = response as? HTTPURLResponse, let url = response.url {
43-
log("Response \(response.statusCode): \(url)")
86+
log("⬅️ Response \(response.statusCode): \(url)")
4487
}
4588

4689
guard let data = data else {
4790
return
4891
}
4992

50-
let tag = "ⒿⓈⓄⓃ \(data.description)"
93+
let tag = "ⒿⓈⓄⓃ \(data.description)\n"
5194

5295
if let jsonString = try? data.prettyPrintedJSONString() {
5396
log(tag, jsonString)

0 commit comments

Comments
 (0)