append method

  1. @override
Future<void> append(
  1. T record
)
override

Implementation

@override
Future<void> append(T record) async {
  while (_locked != null) {
    await _locked;
  }
  final completer = Completer();
  _locked = completer.future;

  final name = namer(DateTime.now());
  final path = join(dir.path, name);
  if (file == null || file!.path != path) {
    file = File(path);
  }

  try {
    await file!.writeAsString(record.toString() + '\n',
        mode: FileMode.append, flush: true);
  } finally {
    completer.complete();
    _locked = null;
  }
}