send method
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;
}