sendLogEvents method

  1. @override
Stream<void> sendLogEvents(
  1. List<LogEntry> logEntries,
  2. Map<String, String> userProperties
)
override

Implementation

@override
Stream<void> sendLogEvents(
    List<LogEntry> logEntries, Map<String, String> userProperties) {
  final cancelToken = CancelToken();
  final streamController = StreamController<void>(onCancel: () {
    cancelToken.cancel();
  });
  streamController.onListen = () {
    sendLogEventsWithDio(logEntries, userProperties, cancelToken).then((val) {
      if (!streamController.isClosed) {
        streamController.add(null);
        streamController.close();
      }
    }).catchError((dynamic err, StackTrace stackTrace) {
      var message = err.runtimeType.toString();
      if (err is DioException) {
        if (err.response != null) {
          message = 'response:${err.response!.data}';
        }
        _logger.warning(
            'Error while sending logs. $message', err, stackTrace);
        if (!streamController.isClosed) {
          streamController.addError(err, stackTrace);
          streamController.close();
        }
      }
    });
  };
  return streamController.stream;
}