code: public Logger getLogger() {
          if (shouldLog()) {
              final int skipped = _skipped.getAndSet(0);
              final Instant lastLogTime = _lastLogTime.getAndSet(_clock.instant());
              if (skipped > 0) {
                  _logger.info(
                          String.format(
                                  "Skipped %d messages for '%s' since last getLogger at %s",
                                  skipped,
                                  _name,
                                  lastLogTime));
              }
              return _logger;
          } else {
              return NOPLogger.NOP_LOGGER;
          }
      }
docs: Obtain a rate limited reference to the underlying logger. If the rate
  has been exceeded then a no-op logger instance is returned and the
  log message is effectively discarded. Discarded messages are tracked
  and a count of discarded messages is output with the next successful
  call to {@code getLogger}.
  
  @return either the underlying logger or a no-op logger