send method

  1. @override
Future<bool> send(
  1. ReportEvent event
)
override

Sends a ReportEvent to the remote/system of choice.

Returns true iff the event was successfully delivered.

Implementation

@override
Future<bool> send(ReportEvent event) async {
  if (!enabled) return false;

  final ex = event.exception;
  final ctxKeys = event.context.keys.take(maxContextKeysPreview).join(', ');
  final msgUser = _truncate(ex.userMessage, maxMessageLength);
  final msgDev = _truncate(ex.devMessage, maxMessageLength);

  debugPrint('────────────────────────────────────────────────────────');
  debugPrint(
      '[BugReport][Console] id=${event.id} ts=${event.timestamp.toIso8601String()}');
  debugPrint('• type=${ex.runtimeType}  severity=${ex.severity}');
  debugPrint('• userMessage: $msgUser');
  debugPrint('• devMessage : $msgDev');
  if (ctxKeys.isNotEmpty) {
    debugPrint(
        '• context    : {$ctxKeys${event.context.length > maxContextKeysPreview ? ', …' : ''}} '
        '(total: ${event.context.length})');
  } else {
    debugPrint('• context    : {}');
  }
  if (ex.stack != null) {
    final top = _firstLines(ex.stack.toString(), 6);
    debugPrint('• stack:\n$top');
  }
  if (prettyJson) {
    // Print full JSON (can be large).
    debugPrint('• json: ${event.toJson()}');
  }
  debugPrint('────────────────────────────────────────────────────────');

  return true;
}