         let elapsedTime = String(format: "[%.4f s]", self.elapsedTime)
         
         // separator
-        let separator = options.contains(.IncludeSeparator) ? "\(SeparatorString)\n" : ""
+        let openSeparator = options.contains(.IncludeSeparator) ? "\(SeparatorString)\n" : ""
+        let closeSeparator = options.contains(.IncludeSeparator) ? "\n\(SeparatorString)" : ""
         
         // log
         if let error = error {

        let url = request.URL?.absoluteString ?? NullString
        let headers = prettyPrintedStringFromJSON(request.allHTTPHeaderFields) ?? NullString
        
        let separator = options.contains(.IncludeSeparator) ? "\(SeparatorString)\n" : ""
        
        switch (level) {
        case .All:
            let prettyPrint = options.contains(.JSONPrettyPrint)
            let body = stringFromData(request.HTTPBody, prettyPrint: prettyPrint) ?? NullString
            print("\(separator)[Request] \(method) '\(url)':\n\n[Headers]\n\(headers)\n\n[Body]\n\(body)\(separator)")
            
        case .Info:
            print("\(separator)[Request] \(method) '\(url)'\(separator)")
            
        default:
            break

            case .None:
                break
            default:
                print("\(openSeparator)[Response Error] \(requestMethod) '\(requestUrl)' \(elapsedTime) s: \(error)\(closeSeparator)")
            }
        }
            
        else {
            switch level {
            case .All:
                print("\(openSeparator)[Response] \(responseStatusCode) '\(requestUrl)' \(elapsedTime):\n\n[Headers]:\n\(responseHeaders)\n\n[Body]\n\(responseData)\(closeSeparator)")
            case .Info:
                print("\(openSeparator)[Response] \(responseStatusCode) '\(requestUrl)' \(elapsedTime)\(closeSeparator)")
            default:
                break
            }
