src/main/java/com/arpnetworking/steno/RateLimitLogger.java
@Override
    /* package private */ void log(
            final LogLevel level,
            final String event,
            final String message,
            final String[] dataKeys,
            final Object[] dataValues,
            final Throwable throwable) {

        if (shouldLog(level)) {
            final String[] augmentedDataKeys = Arrays.copyOf(dataKeys, dataKeys.length + 2);
            final Object[] augmentedDataValues = Arrays.copyOf(dataValues, dataValues.length + 2);
            augmentedDataKeys[augmentedDataKeys.length - 2] = "_skipped";
            augmentedDataKeys[augmentedDataKeys.length - 1] = "_lastLogTime";
            augmentedDataValues[augmentedDataValues.length - 2] = _skipped.getAndSet(0);
            augmentedDataValues[augmentedDataValues.length - 1] = _lastLogTime.getAndSet(_clock.instant());

            super.log(level, event, message, augmentedDataKeys, augmentedDataValues, throwable);
        }
    }
@Override
    /* package private */ void log(
            final LogLevel level,
            final String event,
            final String message,
            final String[] dataKeys,
            final Object[] dataValues,
            final Throwable throwable) {

        if (shouldLog(level)) {
            final String[] augmentedDataKeys = Arrays.copyOf(dataKeys, dataKeys.length + 2);
            final Object[] augmentedDataValues = Arrays.copyOf(dataValues, dataValues.length + 2);
            augmentedDataKeys[augmentedDataKeys.length - 2] = "_skipped";
            augmentedDataKeys[augmentedDataKeys.length - 1] = "_lastLogTime";
            augmentedDataValues[augmentedDataValues.length - 2] = _skipped.getAndSet(0);
            augmentedDataValues[augmentedDataValues.length - 1] = _lastLogTime.getAndSet(_clock.instant());

            super.log(level, event, message, augmentedDataKeys, augmentedDataValues, throwable);
        }
    }
@ Override /* package private */ void log ( final LogLevel level , final String event , final String message , final String [ ] dataKeys , final Object [ ] dataValues , final Throwable throwable ) { if ( shouldLog ( level ) ) { final String [ ] augmentedDataKeys = Arrays . copyOf ( dataKeys , dataKeys . length + 2 ) ; final Object [ ] augmentedDataValues = Arrays . copyOf ( dataValues , dataValues . length + 2 ) ; augmentedDataKeys [ augmentedDataKeys . length - 2 ] = "_skipped" ; augmentedDataKeys [ augmentedDataKeys . length - 1 ] = "_lastLogTime" ; augmentedDataValues [ augmentedDataValues . length - 2 ] = _skipped . getAndSet ( 0 ) ; augmentedDataValues [ augmentedDataValues . length - 1 ] = _lastLogTime . getAndSet ( _clock . instant ( ) ) ; super . log ( level , event , message , augmentedDataKeys , augmentedDataValues , throwable ) ; } }
Log for a particular level using the <code>ARRAY_MARKER</code>.

@param level The log event level.
@param event The log event name.
@param message The log event message.
@param dataKeys The array of data keys.
@param dataValues The array of data values.
@param throwable The <code>Throwable</code>.
Log for a particular level using the <code > ARRAY_MARKER< / code > .