             response(completionHandler: { (response: DefaultDataResponse) in
                 print("")
                 if let url = response.request?.url, let method = response.request?.httpMethod {
-                    print("🚀 \(method) \(url.absoluteString)")
+                    if response.error == nil {
+                        logInfo("🚀 \(method) \(url.absoluteString)")
+                    } else {
+                        logError("🚀 \(method) \(url.absoluteString)")
+                    }
                 }
                 if let body = response.request?.httpBody, let string = String(data: body, encoding: String.Encoding.utf8), string.characters.count > 0 {
-                    print("📦 \(string)")
+                    logVerbose("📦 \(string)")
                 }
                 if let response = response.response {
                     switch response.statusCode {
                     case 200 ..< 300:
-                        print("✅ \(response.statusCode)")
+                        logInfo("✅ \(response.statusCode)")
                     default:
-                        print("❌ \(response.statusCode)")
+                        logInfo("❌ \(response.statusCode)")
                         break
                     }
                 }
                 if let data = response.data, let string = String(data: data, encoding: String.Encoding.utf8), string.characters.count > 0 {
-                    print("📦 \(string)")
+                    logVerbose("📦 \(string)")
                 }
                 if let error = response.error as NSError? {
-                    print("‼️ [\(error.domain) \(error.code)] \(error.localizedDescription)")
+                    logError("‼️ [\(error.domain) \(error.code)] \(error.localizedDescription)")
                 } else if let error = response.error {
-                    print("‼️ \(error)")
+                    logError("‼️ \(error)")
                 }
             })
         #endif

                        completion(DataResponse<[T]>(request: response.request, response: response.response, data: response.data, result: Result<[T]>.success(array)))
                    } else {
                        let error = GoodSwiftError(description: "‼️ Error while unboxing [\(T.self)]")
                        debugLog(error.description)
                        completion(DataResponse<[T]>(request: response.request, response: response.response, data: response.data, result: Result<[T]>.failure(error)))
                    }
                } catch let error {
                    debugLog("‼️ Error while unboxing [\(T.self)]\n\(error)")
                    completion(DataResponse<[T]>(request: response.request, response: response.response, data: response.data, result: Result<[T]>.failure(error)))
                }
            case .failure(let error):

                        completion(DataResponse<T>(request: response.request, response: response.response, data: response.data, result: Result<T>.success(item)))
                    } else {
                        let error = GoodSwiftError(description: "‼️ Error while unboxing \(T.self)")
                        logError(error.description)
                        completion(DataResponse<T>(request: response.request, response: response.response, data: response.data, result: Result<T>.failure(error)))
                    }
                } catch let error {
                    logError("‼️ Error while unboxing \(T.self)\n\(error)")
                    completion(DataResponse<T>(request: response.request, response: response.response, data: response.data, result: Result<T>.failure(error)))
                }
            case .failure(let error):
