logback-android/src/main/java/ch/qos/logback/core/pattern/ConverterUtil.java
public static <E> void startConverters(Converter<E> head) {
    Converter<E> c = head;
    while (c != null) {
      // CompositeConverter is a subclass of  DynamicConverter
      if (c instanceof CompositeConverter) {
        CompositeConverter<E> cc = (CompositeConverter<E>) c;
        Converter<E> childConverter = cc.childConverter;
        startConverters(childConverter);
        cc.start();
      } else if (c instanceof DynamicConverter) {
        DynamicConverter<E> dc = (DynamicConverter<E>) c;
        dc.start();
      }
      c = c.getNext();
    }
  }
public static <E> void startConverters(Converter<E> head) {
    Converter<E> c = head;
    while (c != null) {
      // CompositeConverter is a subclass of  DynamicConverter
      if (c instanceof CompositeConverter) {
        CompositeConverter<E> cc = (CompositeConverter<E>) c;
        Converter<E> childConverter = cc.childConverter;
        startConverters(childConverter);
        cc.start();
      } else if (c instanceof DynamicConverter) {
        DynamicConverter<E> dc = (DynamicConverter<E>) c;
        dc.start();
      }
      c = c.getNext();
    }
  }
public static < E > void startConverters ( Converter < E > head ) { Converter < E > c = head ; while ( c != null ) { // CompositeConverter is a subclass of  DynamicConverter if ( c instanceof CompositeConverter ) { CompositeConverter < E > cc = ( CompositeConverter < E > ) c ; Converter < E > childConverter = cc . childConverter ; startConverters ( childConverter ) ; cc . start ( ) ; } else if ( c instanceof DynamicConverter ) { DynamicConverter < E > dc = ( DynamicConverter < E > ) c ; dc . start ( ) ; } c = c . getNext ( ) ; } }
Start converters in the chain of converters.

@param head head node of converter chain
@param <E> type of log event object
Start converters in the chain of converters .