init method

void init()

Initializes the logger. It wraps any existing HttpOverrides to ensure compatibility with other tools.

Implementation

void init() {
  if (_initialized) {
    print('LogDropNetworkLogger: Already initialized');
    return;
  }

  final previous = HttpOverrides.current;
  HttpOverrides.global = _LoggingHttpOverrides(previous);

  // Internal implementation of logging logic
  _onLog = (request, response, requestBody, responseBody, durationMs, errorType, errorMessage) {
    final data = {
      'isSuccess': errorType == null,
      'method': (request as _LoggingHttpClientRequest).method,
      'url': request.uri.toString(),
      'requestHeaders': (request)._headersToMap((request).headers),
      'requestBody': requestBody,
      'status': response?.statusCode,
      'responseHeaders': response != null ? _headersToMap(response.headers) : null,
      'responseBody': responseBody,
      'tookMs': durationMs,
      'errorType': null,
      'errorMessage': null,
    };

    print("passing data: ${jsonEncode(data)}");
    _channel.invokeMethod('saveHttpLog', data);
  };

  _initialized = true;
  print('LogDropNetworkLogger: Initialized successfully');
}