addBreadcrumb method

void addBreadcrumb(
  1. Breadcrumb breadcrumb, {
  2. dynamic hint,
})

Adds a breadcrumb to the breadcrumbs queue

Implementation

void addBreadcrumb(Breadcrumb breadcrumb, {dynamic hint}) {
  // bail out if maxBreadcrumbs is zero
  if (_options.maxBreadcrumbs == 0) {
    return;
  }

  Breadcrumb? processedBreadcrumb = breadcrumb;
  // run before breadcrumb callback if set
  if (_options.beforeBreadcrumb != null) {
    processedBreadcrumb = _options.beforeBreadcrumb!(
      processedBreadcrumb,
      hint: hint,
    );

    if (processedBreadcrumb == null) {
      _options.logger(
          SentryLevel.info, 'Breadcrumb was dropped by beforeBreadcrumb');
      return;
    }
  }

  // remove first item if list is full
  if (_breadcrumbs.length >= _options.maxBreadcrumbs &&
      _breadcrumbs.isNotEmpty) {
    _breadcrumbs.removeFirst();
  }

  _breadcrumbs.add(breadcrumb);
}