ForwardingLogger.java

package io.jstach.rainbowgum.slf4j;

import org.slf4j.Logger;
import org.slf4j.Marker;
import org.slf4j.event.Level;
import org.slf4j.spi.LoggingEventBuilder;

/**
 * A logger that forwards calls to the {@link #delegate()} logger.
 */
/*
 * The trace/debug/info/warn/error(Marker, String, Object, Object) overrides below match
 * org.slf4j.Logger's own real parameter names (marker, format, arg1, arg2) exactly - the
 * slf4j-api jar just isn't compiled with -parameters, so errorprone falls back to
 * synthetic arg0..arg3 names and flags a mismatch that isn't actually there.
 */
@SuppressWarnings("OverridingMethodInconsistentArgumentNamesChecker")
public interface ForwardingLogger extends Logger, WrappingLogger {

	/**
	 * The downstream logger to forward calls to.
	 * @return delegate.
	 */
	@Override
	public Logger delegate();

	@Override
	default String getName() {
		return delegate().getName();
	}

	@Override
	default LoggingEventBuilder makeLoggingEventBuilder(Level level) {
		return delegate().makeLoggingEventBuilder(level);
	}

	@Override
	default boolean isEnabledForLevel(Level level) {
		return delegate().isEnabledForLevel(level);
	}

	@Override
	default LoggingEventBuilder atError() {
		return delegate().atError();
	}

	@Override
	default boolean isErrorEnabled() {
		return delegate().isErrorEnabled();
	}

	@Override
	default void error(String msg) {
		delegate().error(msg);
	}

	@Override
	default void error(String format, Object arg) {
		delegate().error(format, arg);
	}

	@Override
	default void error(String format, Object arg1, Object arg2) {
		delegate().error(format, arg1, arg2);
	}

	@Override
	default void error(String format, Object... arguments) {
		delegate().error(format, arguments);
	}

	@Override
	default void error(String msg, Throwable t) {
		delegate().error(msg, t);
	}

	@Override
	default boolean isErrorEnabled(Marker marker) {
		return delegate().isErrorEnabled(marker);
	}

	@Override
	default void error(Marker marker, String msg) {
		delegate().error(marker, msg);
	}

	@Override
	default void error(Marker marker, String format, Object arg) {
		delegate().error(marker, format, arg);
	}

	@Override
	default void error(Marker marker, String format, Object arg1, Object arg2) {
		delegate().error(marker, format, arg1, arg2);
	}

	@Override
	default void error(Marker marker, String format, Object... argArray) {
		delegate().error(marker, format, argArray);
	}

	@Override
	default void error(Marker marker, String msg, Throwable t) {
		delegate().error(marker, msg, t);
	}

	@Override
	default LoggingEventBuilder atWarn() {
		return delegate().atWarn();
	}

	@Override
	default boolean isWarnEnabled() {
		return delegate().isWarnEnabled();
	}

	@Override
	default void warn(String msg) {
		delegate().warn(msg);
	}

	@Override
	default void warn(String format, Object arg) {
		delegate().warn(format, arg);
	}

	@Override
	default void warn(String format, Object arg1, Object arg2) {
		delegate().warn(format, arg1, arg2);
	}

	@Override
	default void warn(String format, Object... arguments) {
		delegate().warn(format, arguments);
	}

	@Override
	default void warn(String msg, Throwable t) {
		delegate().warn(msg, t);
	}

	@Override
	default boolean isWarnEnabled(Marker marker) {
		return delegate().isWarnEnabled(marker);
	}

	@Override
	default void warn(Marker marker, String msg) {
		delegate().warn(marker, msg);
	}

	@Override
	default void warn(Marker marker, String format, Object arg) {
		delegate().warn(marker, format, arg);
	}

	@Override
	default void warn(Marker marker, String format, Object arg1, Object arg2) {
		delegate().warn(marker, format, arg1, arg2);
	}

	@Override
	default void warn(Marker marker, String format, Object... argArray) {
		delegate().warn(marker, format, argArray);
	}

	@Override
	default void warn(Marker marker, String msg, Throwable t) {
		delegate().warn(marker, msg, t);
	}

	@Override
	default LoggingEventBuilder atInfo() {
		return delegate().atInfo();
	}

	@Override
	default boolean isInfoEnabled() {
		return delegate().isInfoEnabled();
	}

	@Override
	default void info(String msg) {
		delegate().info(msg);
	}

	@Override
	default void info(String format, Object arg) {
		delegate().info(format, arg);
	}

	@Override
	default void info(String format, Object arg1, Object arg2) {
		delegate().info(format, arg1, arg2);
	}

	@Override
	default void info(String format, Object... arguments) {
		delegate().info(format, arguments);
	}

	@Override
	default void info(String msg, Throwable t) {
		delegate().info(msg, t);
	}

	@Override
	default boolean isInfoEnabled(Marker marker) {
		return delegate().isInfoEnabled(marker);
	}

	@Override
	default void info(Marker marker, String msg) {
		delegate().info(marker, msg);
	}

	@Override
	default void info(Marker marker, String format, Object arg) {
		delegate().info(marker, format, arg);
	}

	@Override
	default void info(Marker marker, String format, Object arg1, Object arg2) {
		delegate().info(marker, format, arg1, arg2);
	}

	@Override
	default void info(Marker marker, String format, Object... argArray) {
		delegate().info(marker, format, argArray);
	}

	@Override
	default void info(Marker marker, String msg, Throwable t) {
		delegate().info(marker, msg, t);
	}

	@Override
	default LoggingEventBuilder atDebug() {
		return delegate().atDebug();
	}

	@Override
	default boolean isDebugEnabled() {
		return delegate().isDebugEnabled();
	}

	@Override
	default void debug(String msg) {
		delegate().debug(msg);
	}

	@Override
	default void debug(String format, Object arg) {
		delegate().debug(format, arg);
	}

	@Override
	default void debug(String format, Object arg1, Object arg2) {
		delegate().debug(format, arg1, arg2);
	}

	@Override
	default void debug(String format, Object... arguments) {
		delegate().debug(format, arguments);
	}

	@Override
	default void debug(String msg, Throwable t) {
		delegate().debug(msg, t);
	}

	@Override
	default boolean isDebugEnabled(Marker marker) {
		return delegate().isDebugEnabled(marker);
	}

	@Override
	default void debug(Marker marker, String msg) {
		delegate().debug(marker, msg);
	}

	@Override
	default void debug(Marker marker, String format, Object arg) {
		delegate().debug(marker, format, arg);
	}

	@Override
	default void debug(Marker marker, String format, Object arg1, Object arg2) {
		delegate().debug(marker, format, arg1, arg2);
	}

	@Override
	default void debug(Marker marker, String format, Object... argArray) {
		delegate().debug(marker, format, argArray);
	}

	@Override
	default void debug(Marker marker, String msg, Throwable t) {
		delegate().debug(marker, msg, t);
	}

	@Override
	default LoggingEventBuilder atTrace() {
		return delegate().atTrace();
	}

	@Override
	default boolean isTraceEnabled() {
		return delegate().isTraceEnabled();
	}

	@Override
	default void trace(String msg) {
		delegate().trace(msg);
	}

	@Override
	default void trace(String format, Object arg) {
		delegate().trace(format, arg);
	}

	@Override
	default void trace(String format, Object arg1, Object arg2) {
		delegate().trace(format, arg1, arg2);
	}

	@Override
	default void trace(String format, Object... arguments) {
		delegate().trace(format, arguments);
	}

	@Override
	default void trace(String msg, Throwable t) {
		delegate().trace(msg, t);
	}

	@Override
	default boolean isTraceEnabled(Marker marker) {
		return delegate().isTraceEnabled(marker);
	}

	@Override
	default void trace(Marker marker, String msg) {
		delegate().trace(marker, msg);
	}

	@Override
	default void trace(Marker marker, String format, Object arg) {
		delegate().trace(marker, format, arg);
	}

	@Override
	default void trace(Marker marker, String format, Object arg1, Object arg2) {
		delegate().trace(marker, format, arg1, arg2);
	}

	@Override
	default void trace(Marker marker, String format, Object... argArray) {
		delegate().trace(marker, format, argArray);
	}

	@Override
	default void trace(Marker marker, String msg, Throwable t) {
		delegate().trace(marker, msg, t);
	}

}