emitLog method

  1. @override
Future<void> emitLog(
  1. LogEvent event
)

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);
}