You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GitHub Logging Errors Explanation
Error logging is a default feature and can be accomplished without any additional settings.
In case error logging needs to be disabled, use the following code snippet:
** swift code ==================================================================
let networking = Networking(baseURL: "http://httpbin.org")
networking.disableErrorLogging = true
As of version 6.3.0, it appears that the disableErrorLogging property is no longer present, and only isErrorLoggingEnabled is available. Has there been a change in error logging settings from disableErrorLogging to isErrorLoggingEnabled?
Currently, when an error occurs during API requests using the networking instance, logging does not occur, regardless of the disableErrorLogging or isErrorLoggingEnabled properties. Is there a specific configuration needed for error logging in version 6.3.0? If so, could you provide details on what needs to be set up?
Even if no errors occur, is there a way to print logs for network communication through configuration settings? If not, is it a feature that each developer needs to implement individually? I ask this because, considering the support for error logging functionality, it seems plausible that logging for all communication (not just errors) might be available.
For your reference, I am using the latest version, 6.3.0. Below is the relevant code snippet. Your insights and suggestions are highly appreciated.
�** swift code =============================================================================
class APIClient {
static let shared = APIClient()
private var networking: Networking
init() {
networking = Networking(baseURL: APIConstants.endpoint)
}
private func request(method: RequestType, header: HeaderType = .none, path: String,
parameters: [String: Any], parameterType: Networking.ParameterType = .formURLEncoded) async throws -> JSONResult {
switch header {
case .beare: networking.setAuthorizationHeader(username: APIConstants.clientId, password: APIConstants.clientSecret)
case .accessToken: networking.headerFields = ["Authorization": "Bearer \(APIConstants.accessToken)"]
case .none: break
}
switch method {
case .get: return try await networking.get(path, parameters: parameters)
case .post: return try await networking.post(path, parameterType: parameterType, parameters: parameters)
case .put: return try await networking.put(path, parameterType: parameterType, parameters: parameters)
case .patch: return try await networking.patch(path, parameterType: parameterType, parameters: parameters)
case .delete: return try await networking.delete(path)
}
}
private func handleResult<T: APIResponseProtocol>(result: JSONResult, responseType: T.Type) -> T where T.DataType: Decodable {
var response: T
switch result {
case .success(let data):
if data.data.isEmpty {
return T(data: nil, error: nil)
}
switch decodeJSON(type: T.DataType.self, from: data.data) {
case let decoded?:
response = T(data: decoded, error: nil)
case nil:
print("decodeJSON Error : ", ErrorStatusCode.decode.rawValue)
let errorResponse = ErrorResponse(statusCode: ErrorStatusCode.decode.rawValue, error: ErrorMessage(message: "Decode Json Error"))
response = T(data: nil, error: errorResponse)
}
case .failure(let data):
print("handleResult rrobbie failure data : ", data)
response = T(data: nil, error: decodeJSON(type: ErrorResponse.self, from: data.data, statusCode: data.statusCode))
}
return response
}
func decodeJSON<T: Decodable>(type: T.Type, from data: Data, statusCode: Int? = nil) -> T? {
let decoder = JSONDecoder()
do {
let decodedData = try decoder.decode(type, from: data)
if var errorResponse = decodedData as? ErrorResponse, let statusCode = statusCode {
errorResponse.statusCode = statusCode
return errorResponse as? T
}
return decodedData
} catch {
print("Decode Error : ", error)
return nil
}
}
func send<T: APIRequest>(request: T) async -> T.Response where T.Response: APIResponseProtocol {
do {
let result = try await self.request(method: request.method, header: request.header, path: request.path, parameters: request.parameters())
return handleResult(result: result, responseType: T.Response.self)
} catch let error {
let nsError = error as NSError
// TODO : print 정의. network error인 경우...
let errorMessage = ErrorMessage(code: nsError.domain, message: nsError.localizedDescription, print: "Network Error")
let errorResponse = ErrorResponse(statusCode: nsError.code, error: errorMessage)
return T.Response(data: nil, error: errorResponse)
}
}
}
Please review the provided code and share any feedback or recommendations. Thank you.
The text was updated successfully, but these errors were encountered:
GitHub Logging Errors Explanation
Error logging is a default feature and can be accomplished without any additional settings.
In case error logging needs to be disabled, use the following code snippet:
** swift code ==================================================================
let networking = Networking(baseURL: "http://httpbin.org")
networking.disableErrorLogging = true
=============================================================================
Queries:
As of version 6.3.0, it appears that the disableErrorLogging property is no longer present, and only isErrorLoggingEnabled is available. Has there been a change in error logging settings from disableErrorLogging to isErrorLoggingEnabled?
Currently, when an error occurs during API requests using the networking instance, logging does not occur, regardless of the disableErrorLogging or isErrorLoggingEnabled properties. Is there a specific configuration needed for error logging in version 6.3.0? If so, could you provide details on what needs to be set up?
Even if no errors occur, is there a way to print logs for network communication through configuration settings? If not, is it a feature that each developer needs to implement individually? I ask this because, considering the support for error logging functionality, it seems plausible that logging for all communication (not just errors) might be available.
For your reference, I am using the latest version, 6.3.0. Below is the relevant code snippet. Your insights and suggestions are highly appreciated.
�** swift code =============================================================================
class APIClient {
static let shared = APIClient()
private var networking: Networking
}
Please review the provided code and share any feedback or recommendations. Thank you.
The text was updated successfully, but these errors were encountered: