code: public boolean start() {
          if (!this.isTailing.compareAndSet(false, true)) {
              return false;
          }
          final boolean willReadFromEnd = this.willReadFromEnd();
          LogWatchTailingManager.LOGGER.debug("Tailer {} ignore existing file contents.", willReadFromEnd ? "will"
                  : "won't");
          this.tailer = new SplitlogTailer(this.watch.getWatchedFile(), new LogWatchTailerListener(this),
                  this.delayBetweenReads, this.willReadFromEnd(), this.reopenBetweenReads, this.bufferSize);
          LogWatchTailingManager.EXECUTOR.submit(this.tailer);
          final long start = System.nanoTime();
          this.tailer.waitUntilStarted();
          final long duration = System.nanoTime() - start;
          LogWatchTailingManager.LOGGER.debug("It took {} ms for the tailing to actually start.",
                  TimeUnit.NANOSECONDS.toMillis(duration));
          final long iterationNum = this.numberOfTimesThatTailerWasStarted.incrementAndGet();
          LogWatchTailingManager.LOGGER.info("Tailing #{} started for {}.", iterationNum, this.watch);
          return true;
      }
docs: Start the tailer on a separate thread. Only when a tailer is running can
  {@link Follower}s be notified of new {@link Message}s from the log.
  
  @return True if the start was scheduled, false if scheduled already.