spring-geode-starter-logging/src/main/java/org/springframework/geode/logging/slf4j/logback/CompositeAppender.java
/**
	 * Composes the {@link Iterable} of {@link Appender Appenders} into a {@link CompositeAppender}.
	 *
	 * This operation is null-safe.
	 *
	 * @param <T> {@link Class type} of the logging events processed by the {@link Appender Appenders}.
	 * @param appenders {@link Iterable} of {@link Appender Appenders} to compose; may be {@literal null}.
	 * @return a composition of the {@link Iterable} of {@link Appender Appenders}; returns {@literal null}
	 * if the {@link Iterable} is {@literal null} or empty.
	 * @see #compose(Appender, Appender)
	 * @see java.lang.Iterable
	 */
Composes the  Iterable of  Appender Appenders into a  CompositeAppender.
This operation is null-safe.

@param   Class type of the logging events processed by the  Appender Appenders.
@param appenders  Iterable of  Appender Appenders to compose; may be  null.
@return a composition of the  Iterable of  Appender Appenders; returns  null
if the  Iterable is  null or empty.
Composes the Iterable of Appender Appenders into a CompositeAppender . This operation is null - safe . @param Class type of the logging events processed by the Appender Appenders . @param appenders Iterable of Appender Appenders to compose ; may be null . @return a composition of the Iterable of Appender Appenders ; returns null if the Iterable is null or empty .
public static <T> Appender<T> compose(Iterable<Appender<T>> appenders) {
		Appender<T> currentAppender = null;
		appenders = appenders != null ? appenders : Collections::emptyIterator;
		for (Appender<T> appender : appenders) {
			currentAppender = compose(currentAppender, appender);
		}
		return currentAppender;
	}
public static < T > Appender < T > compose ( Iterable < Appender < T > > appenders ) { Appender < T > currentAppender = null ; appenders = appenders != null ? appenders : Collections :: emptyIterator ; for ( Appender < T > appender : appenders ) { currentAppender = compose ( currentAppender , appender ) ; } return currentAppender ; }
Composes the {@link Iterable} of {@link Appender Appenders} into a {@link CompositeAppender}.
Composes the { @link Iterable } of { @link Appender Appenders } into a { @link CompositeAppender } .