src/main/java/com/arpnetworking/steno/Logger.java
public void debug(
            @Nullable final String event,
            @Nullable final String message,
            @Nullable final String[] dataKeys,
            @Nullable final Object... dataValues) {
        final Throwable throwable = extractThrowable(dataKeys, dataValues);
        log(LogLevel.DEBUG, event, message, dataKeys, chompArray(dataValues, throwable == null ? 0 : 1), throwable);
    }
public void debug(
            @Nullable final String event,
            @Nullable final String message,
            @Nullable final String[] dataKeys,
            @Nullable final Object... dataValues) {
        final Throwable throwable = extractThrowable(dataKeys, dataValues);
        log(LogLevel.DEBUG, event, message, dataKeys, chompArray(dataValues, throwable == null ? 0 : 1), throwable);
    }
Log a message for a canonical event with supporting key-value pairs at
the debug level.

The number of elements in the <code>dataNames</code> array should
match the number of arguments provided as <code>data</code>
unless a <code>Throwable</code> is specified as the final argument in
<code>data</code> in which case there would be one fewer element
in the <code>dataNames</code> array compared to the number of
arguments provided as <code>data</code>.

@since 1.3.0

@param event The canonical event that occurred.
@param message The message to be logged.
@param dataKeys Array of data keys.
@param dataValues data values matching data keys by index. The
final data argument may be a <code>Throwable</code> which does
not require a matching data name.