@Override
    public void send(String source, OutgoingMessageEnvelope envelope) {
      LOG.info(String.format(String.format("Message %d :", messageCounter.incrementAndGet())));
      String msg = String.format("OutputStream:%s Key:%s Value:%s", envelope.getSystemStream(), envelope.getKey(),
              new String((byte[]) envelope.getMessage()));
      LOG.info(msg);

      SamzaExecutor.saveOutputMessage(envelope);
    }
System factory of Samza Sql Shell which needs to provide Consumer, Producer and Admin
samza-sql-shell/src/main/java/org/apache/samza/sql/client/impl/CliLoggingSystemFactory.java