logRequest method

void logRequest(
  1. RequestData data
)

Implementation

void logRequest(RequestData data) {
  if (logLevel == LogLevel.NONE) return;

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

  int bodyInBytes =
      data.body != null ? (utf8.encode(data.body.toString()).length) : 0;

  if (logLevel == LogLevel.BASIC) {
    print("--> $method ${data.url} ($bodyInBytes-byte Body)");
    return;
  }

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

  if (logHeaders) {
    print("--> ${data.method.toString().split(".")[1]} ${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 $method\n");
}