logResponse method

void logResponse(
  1. ResponseData data
)

Implementation

void logResponse(ResponseData data) {
  if (logLevel == LogLevel.NONE) return;

  if (logLevel == LogLevel.BASIC) {
    print("<-- ${data.statusCode} (${data.contentLength}-byte Body)");
    return;
  }

  String method = data.method.toString().split(".")[1];

  print("<-- $method ${data.statusCode}");

  bool logBody = logLevel == LogLevel.BODY;
  bool logHeaders = logBody || logLevel == LogLevel.HEADERS;

  if (logHeaders) {
    print("URL: ${data.url}");
    print("HEADERS:");
    Map<String, String>? headers = data.headers;
    if (headers == null || headers.length == 0) {
      print("Request has no headers.");
    } else {
      StringBuffer headersBuffer = StringBuffer();
      headers.forEach((key, value) => headersBuffer.write("$key: $value\n"));
      print(headersBuffer.toString());
    }

    //Log the request body
    if (logBody) {
      print("BODY:");
      if (data.body == null) {
        print("Request has no boy.");
      } else {
        print(data.body);
      }
    }
  }

  print("<-- END HTTP");
}