appendEvent method

Future<void> appendEvent({
  1. required String type,
  2. required String source,
  3. required String summary,
  4. String atSign = '',
  5. String status = 'success',
  6. Map<String, dynamic> data = const <String, dynamic>{},
})

Implementation

Future<void> appendEvent({
  required String type,
  required String source,
  required String summary,
  String atSign = '',
  String status = 'success',
  Map<String, dynamic> data = const <String, dynamic>{},
}) async {
  await ensureReady();

  final now = DateTime.now().toUtc();
  final event = <String, dynamic>{
    'id': _newEventId(now),
    'createdAtUtc': now.toIso8601String(),
    'source': source,
    'type': type,
    'atSign': atSign,
    'status': status,
    'summary': summary,
    'data': data,
  };

  final line = jsonEncode(event);
  await _runExclusive(
    () => _file!.writeAsString('$line\n', mode: FileMode.append),
  );
}