createEvent method
Future<ReportEvent>
createEvent(
- BaseException exception, {
- Map<
String, dynamic> additionalContext = const {}, - bool manual = false,
- bool handled = true,
Creates a ReportEvent from a BaseException, collecting and merging contexts, applying transforms and sanitizers, and returning a sanitized event ready for delivery.
If manual is true, manual-only context providers are included.
Implementation
Future<ReportEvent> createEvent(
BaseException exception, {
Map<String, dynamic> additionalContext = const {},
bool manual = false,
bool handled = true,
}) async {
final cfg = _ensureConfig();
final baseCtx = await _collectContext(
base: cfg.baseProviders,
additional: [
...cfg.additionalProviders,
..._dynamicProviders,
],
includeManualOnly: manual,
);
final rawEvent = ReportEvent(
id: ReportEvent.generateId(),
exception: exception,
context: {
'environment': cfg.environment,
'handled': handled,
...baseCtx,
if (additionalContext.isNotEmpty) ...additionalContext,
},
timestamp: DateTime.now(),
breadcrumbs: List.unmodifiable(_breadcrumbs),
fingerprints: _computeFingerprints(exception),
handled: handled,
);
// Apply transforms (e.g., tagging, rewriting) then sanitizers to produce a safe payload.
final transformed = cfg.applyTransforms(rawEvent);
final sanitizedPayload = cfg.sanitize(transformed);
// Embed the sanitized payload for downstream reporters and outbox persistence.
return transformed.withPayload(sanitizedPayload);
}