public void run()

in ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/commands/ReadLogCommand.java [41:71]


  public void run(Terminal terminal, LineReader lineReader, LogServiceClient client, String[] args) {
    if (args.length != 1) {
      terminal.writer().println("ERROR - Usage: read <name>");
      return;
    }
    String logName = args[0];
    try (LogStream stream = client.getLog(LogName.of(logName));
        LogReader reader = stream.createReader()) {
      long firstId = stream.getStartRecordId();
      long lastId = stream.getLastRecordId();
      StringBuilder sb = new StringBuilder();
      List<ByteBuffer> records = reader.readBulk((int) (lastId - firstId));
      for (ByteBuffer record : records) {
        if (sb.length() > 0) {
          sb.append(", ");
        }
        sb.append("\"");
        if (record != null) {
          String strData = new String(record.array(), record.arrayOffset(), record.remaining(), StandardCharsets.UTF_8);
          sb.append(strData);
        }
        sb.append("\"");
      }
      sb.insert(0, "[");
      sb.append("]");
      terminal.writer().println(sb.toString());
    } catch (Exception e) {
      terminal.writer().println("Failed to read from log");
      e.printStackTrace(terminal.writer());
    }
  }