logs method

LogStream<void> logs({
  1. required String containerId,
  2. bool follow = false,
})

Implementation

LogStream<void> logs({required String containerId, bool follow = false}) {
  final requestId = Uuid().v4().toString();
  final controller = StreamController<String>();
  final completer = Completer();
  final progress = StreamController<LogProgress>();

  final stream = LogStream._(completer, controller.stream, progress.stream, () async {
    await room.sendRequest('containers.stop_logs', {'request_id': requestId});
  });
  _loggers[requestId] = controller;
  _progress[requestId] = progress;

  room
      .sendRequest("containers.logs", {"request_id": requestId, "id": containerId, "follow": follow})
      .then(
        (_) {
          controller.close();
          completer.complete();
          _loggers.remove(requestId);
        },
        onError: (error) {
          controller.close();
          completer.completeError(error);
          _loggers.remove(requestId);
        },
      );

  return stream;
}