spring-geode-starter-logging/src/main/java/org/springframework/geode/logging/slf4j/logback/support/LogbackSupport.java
/**
	 * Requires an {@link Appender} with the given {@link String name} having the specified {@link Class type}
	 * from the given {@link Logger}.
	 *
	 * @param <T> {@link Class type} of the {@link Appender}.
	 * @param <E> {@link Class type} of the {@link Object Objects} processed by the {@link Appender}.
	 * @param logger {@link Logger} from which to resolve the {@link Appender}.
	 * @param appenderName {@link String} containing the name of the {@link Appender}.
	 * @param appenderType required {@link Class type} of the {@link Appender}.
	 * @return the resolved {@link Appender}.
	 * @throws IllegalStateException if an {@link Appender} with {@link String name} and required {@link Class type}
	 * could not be resolved from the given {@link Logger}.
	 * @see ch.qos.logback.classic.Logger
	 * @see ch.qos.logback.core.Appender
	 */
Requires an  Appender with the given  String name having the specified  Class type
from the given  Logger.

@param   Class type of the  Appender.
@param   Class type of the  Object Objects processed by the  Appender.
@param logger  Logger from which to resolve the  Appender.
@param appenderName  String containing the name of the  Appender.
@param appenderType required  Class type of the  Appender.
@return the resolved  Appender.
@throws IllegalStateException if an  Appender with  String name and required  Class type
could not be resolved from the given  Logger.
Requires an Appender with the given String name having the specified Class type from the given Logger . @param Class type of the Appender . @param Class type of the Object Objects processed by the Appender . @param logger Logger from which to resolve the Appender . @param appenderName String containing the name of the Appender . @param appenderType required Class type of the Appender . @return the resolved Appender . @throws IllegalStateException if an Appender with String name and required Class type could not be resolved from the given Logger .
public static <E, T extends Appender<E>> T requireAppender(ch.qos.logback.classic.Logger logger,
			String appenderName, Class<T> appenderType) {
		return resolveAppender(logger, appenderName, appenderType)
			.orElseThrow(() -> new IllegalStateException(String.format(UNRESOLVABLE_APPENDER_EXCEPTION_MESSAGE,
				appenderName, nullSafeTypeName(appenderType), nullSafeLoggerName(logger))));
	}
public static < E , T extends Appender < E > > T requireAppender ( ch . qos . logback . classic . Logger logger , String appenderName , Class < T > appenderType ) { return resolveAppender ( logger , appenderName , appenderType ) . orElseThrow ( ( ) -> new IllegalStateException ( String . format ( UNRESOLVABLE_APPENDER_EXCEPTION_MESSAGE , appenderName , nullSafeTypeName ( appenderType ) , nullSafeLoggerName ( logger ) ) ) ) ; }
Requires an {@link Appender} with the given {@link String name} having the specified {@link Class type}
 from the given {@link Logger}.
Requires an { @link Appender } with the given { @link String name } having the specified { @link Class type } from the given { @link Logger } .