             return
         }
 
-        log("========== JSONRequest ==========")
-        log(">>>> Request >>>>")
+        log(">>>>>>>>>> JSON Request >>>>>>>>>>")
         if let method = task.currentRequest?.HTTPMethod {
             log("HTTP Method: \(method)")
         }

            log("Url: \(url)")
        }
        if let headers = task.currentRequest?.allHTTPHeaderFields {
            log("Headers: \(objectToJSONString(headers, pretty: false))")
        }
        if let payload = task.currentRequest?.HTTPBody,
            let body = String(data: payload, encoding: NSUTF8StringEncoding) {
            log("Payload: \(body)")
        }
        log(">>>>>>>>")
    }

    private func traceResponse(responseData: NSData?, httpResponse: NSHTTPURLResponse?, error: NSError?) {
        guard let log = JSONRequest.log else {
            return
        }

        log("========== JSONRequest ==========")
        log("<<<< Response <<<<")
        if let statusCode = httpResponse?.statusCode {
            log("Status Code: \(statusCode)")
        }
        if let headers = httpResponse?.allHeaderFields {
            log("Headers: \(objectToJSONString(headers, pretty: false))")
        }
        if let data = responseData, let body = JSONToObject(data) {
            log("Body: \(dataToUTFString(data))")
        }
        if let errorString = error?.localizedDescription {
            log("Error: \(errorString)")
        }
        log("<<<<<<<<")
    }

    private func JSONToObject(data: NSData) -> AnyObject? {

        updateRequestHeaders(headers)
        updateRequestPayload(payload)

        let start = NSDate()
        let task = networkSession().dataTaskWithRequest(request!) { (data, response, error) in
            let elapsed = -start.timeIntervalSinceNow
            self.traceResponse(elapsed, responseData: data, httpResponse: response as? NSHTTPURLResponse, error: error)
            if let error = error {
                let result = JSONResult.Failure(error: JSONError.RequestFailed(error: error),
                                                response: response as? NSHTTPURLResponse,
