emitLog method
Performs the actual delivery of event to the transport's destination.
Called only when event.level >= this.level. Implementations must not
throw; swallow or handle errors internally.
Implementation
@override
Future<void> emitLog(LogEvent event) async {
final String eventName = name
.replaceAll('{context}', event.context ?? '')
.replaceAll('{level}', event.level.name);
final msg = format
.replaceAll('{level}', event.level.name)
.replaceAll('{message}', event.message.toString())
.replaceAll('{timestamp}', event.timestamp.toIso8601String())
.replaceAll('{context}', event.context ?? '')
.replaceAll('{error}', event.error?.toString() ?? '')
.replaceAll('{stackTrace}', event.stackTrace?.toString() ?? '');
final params = <String, Object>{
'level': event.level.name,
'message': msg,
'timestamp': event.timestamp.toIso8601String(),
if (event.context != null) 'context': event.context!,
if (event.error != null) 'error': event.error.toString(),
if (event.stackTrace != null) 'stackTrace': event.stackTrace.toString(),
};
await dispatchEvent(eventName, params, callOptions);
}