log method
Logs a message or a structured event to Firebase Analytics.
entry - The complete log entry containing message, level, timestamp, context, and event.
Implementation
@override
Future<void> log(LogEntry entry) async {
try {
if (shouldLog(event: entry.event)) {
// Use the unified mergedContext getter, serialize and cast for Firebase compatibility
final context = entry.mergedContext;
final parameters = context.isNotEmpty
? (await _serializeContext(context)).cast<String, Object>()
: <String, Object>{};
if (entry.event != null && entry.event is FirebaseAnalyticsLogEvent) {
final analyticsEvent = entry.event as FirebaseAnalyticsLogEvent;
_analytics.logEvent(
name: analyticsEvent.eventName,
parameters: parameters.isNotEmpty ? parameters : null,
);
}
}
} catch (e, stack) {
developer.log(
'Error during Firebase Analytics logging: $e',
name: 'FirebaseAnalyticsLogStrategy',
error: e,
stackTrace: stack,
);
}
}