trackError method

void trackError(
  1. Object error,
  2. StackTrace? stackTrace, {
  3. Map<String, dynamic>? context,
})

Tracks an error with optional stackTrace and context metadata.

Implementation

void trackError(
  Object error,
  StackTrace? stackTrace, {
  Map<String, dynamic>? context,
}) {
  final errorStr = error.toString();
  final props = <String, dynamic>{
    'message': errorStr.length > 500 ? errorStr.substring(0, 500) : errorStr,
  };
  if (stackTrace != null) {
    final stackStr = stackTrace.toString();
    props['stack'] =
        stackStr.length > 2000 ? stackStr.substring(0, 2000) : stackStr;
  }
  if (context != null) props.addAll(context);

  final payload = _buildPayload(
    type: EventType.error,
    eventName: error.runtimeType.toString(),
    properties: props,
  );
  _track(payload);
  _logger.log('trackError: ${error.runtimeType}');
}