         public static let headers:      RequestLogOptions = RequestLogOptions(rawValue: 1 << 2)
         public static let formatAscURL: RequestLogOptions = RequestLogOptions(rawValue: 1 << 3)
 
+        //Aggregate options
         public static let `default`:    RequestLogOptions = [method, headers]
         public static let verbose:      RequestLogOptions = [method, headers, body]
     }

        return "\(configuration.loggerId): [\(date)] \(identifier): \(message)"
    }

    func logNetworkRequest(_ request: RequestType) -> [String] {
        guard let httpRequest = request.request else {
            return [newEntry(identifier: "Request", message: "(invalid request)")]
        }

        var output = [String]()

        output.append(newEntry(identifier: "Request", message: httpRequest.description))

    public init(configuration: Configuration = Configuration()) {
        self.configuration = configuration
    }
}

//MARK: - PluginType
extension NetworkLoggerPlugin: PluginType {
    public func willSend(_ request: RequestType, target: TargetType) {
        configuration.output(target, logNetworkRequest(request, target: target))
    }

    public func didReceive(_ result: Result<Moya.Response, MoyaError>, target: TargetType) {
        switch result {
        case .success(let response):
            configuration.output(target, logNetworkResponse(response, target: target, isFromError: false))
        case let .failure(error):
            configuration.output(target, logNetworkError(error, target: target))
        }
    }
}

//MARK: - Logging
private extension NetworkLoggerPlugin {

    func newEntry(identifier: String, message: String) -> String {
