code: @Override
    public void start() throws Exception {
      SynchronousQueue<Runnable> synchronousQueue = new SynchronousQueue<>();
      mThreadPool =
          new ThreadPoolExecutor(mMinNumberOfThreads, mMaxNumberOfThreads,
              THREAD_KEEP_ALIVE_TIME_MS, TimeUnit.MILLISECONDS, synchronousQueue);
      mStopped = false;
      try {
        mServerSocket = new ServerSocket(mPort);
      } catch (IOException e) {
        throw new RuntimeException("Failed to bind to port {}.", e);
      }
      while (!mStopped) {
        Socket client;
        try {
          client = mServerSocket.accept();
        } catch (IOException e) {
          if (mServerSocket.isClosed()) {
            break;
          } else {
            continue;
          }
        }
        String clientAddress = client.getInetAddress().getHostAddress();
        LOG.info("Starting thread to read logs from {}", clientAddress);
        AlluxioLog4jSocketNode clientSocketNode = new AlluxioLog4jSocketNode(mBaseLogsDir, client);
        synchronized (mClientSockets) {
          mClientSockets.add(client);
        }
        try {
          CompletableFuture.runAsync(clientSocketNode, mThreadPool)
              .whenComplete((r, e) -> {
                synchronized (mClientSockets) {
                  mClientSockets.remove(client);
                }
              });
        } catch (RejectedExecutionException e) {
          // Alluxio log clients (master, secondary master, proxy and workers) establish
          // long-living connections with the log server. Therefore, if the log server cannot
          // find a thread to service a log client, it is very likely due to low number of
          // worker threads. If retry fails, then it makes sense just to let system throw
          // an exception. The system admin should increase the thread pool size.
          String errorMessage = String.format(
              "Log server cannot find a worker thread to service log requests from %s. Increase"
                  + " the number of worker threads in the thread pool by configuring"
                  + " alluxio.logserver.threads.max in alluxio-site.properties. Current value"
                  + " is %d.", clientAddress, mMaxNumberOfThreads);
          throw new RuntimeException(errorMessage, e);
        }
      }
    }
docs: {@inheritDoc}
  
  Creates and starts logging server and client thread pool.