logback-android/src/main/java/ch/qos/logback/core/joran/action/IncludeAction.java
@Override
  protected void processInclude(InterpretationContext ic, URL url) throws JoranException {

    InputStream in = openURL(url);

    try {
      if (in != null) {
        // add URL to watch list in case the "scan" flag is true, in
        // which case this URL is periodically checked for changes
        ConfigurationWatchListUtil.addToWatchList(getContext(), url);

        // parse the include
        SaxEventRecorder recorder = createRecorder(in, url);
        recorder.setContext(getContext());
        recorder.recordEvents(in);

        // remove the leading/trailing tags (<included> or <configuration>)
        trimHeadAndTail(recorder);

        ic.getJoranInterpreter().getEventPlayer().addEventsDynamically(recorder.getSaxEventList(), this.eventOffset);
      }
    } catch (JoranException e) {
      optionalWarning("Failed processing [" + url.toString() + "]", e);
    } finally {
      close(in);
    }
  }
@Override
  protected void processInclude(InterpretationContext ic, URL url) throws JoranException {

    InputStream in = openURL(url);

    try {
      if (in != null) {
        // add URL to watch list in case the "scan" flag is true, in
        // which case this URL is periodically checked for changes
        ConfigurationWatchListUtil.addToWatchList(getContext(), url);

        // parse the include
        SaxEventRecorder recorder = createRecorder(in, url);
        recorder.setContext(getContext());
        recorder.recordEvents(in);

        // remove the leading/trailing tags (<included> or <configuration>)
        trimHeadAndTail(recorder);

        ic.getJoranInterpreter().getEventPlayer().addEventsDynamically(recorder.getSaxEventList(), this.eventOffset);
      }
    } catch (JoranException e) {
      optionalWarning("Failed processing [" + url.toString() + "]", e);
    } finally {
      close(in);
    }
  }
@ Override protected void processInclude ( InterpretationContext ic , URL url ) throws JoranException { InputStream in = openURL ( url ) ; try { if ( in != null ) { // add URL to watch list in case the "scan" flag is true, in // which case this URL is periodically checked for changes ConfigurationWatchListUtil . addToWatchList ( getContext ( ) , url ) ; // parse the include SaxEventRecorder recorder = createRecorder ( in , url ) ; recorder . setContext ( getContext ( ) ) ; recorder . recordEvents ( in ) ; // remove the leading/trailing tags (<included> or <configuration>) trimHeadAndTail ( recorder ) ; ic . getJoranInterpreter ( ) . getEventPlayer ( ) . addEventsDynamically ( recorder . getSaxEventList ( ) , this . eventOffset ) ; } } catch ( JoranException e ) { optionalWarning ( "Failed processing [" + url . toString ( ) + "]" , e ) ; } finally { close ( in ) ; } }
Processes an include
@param ic context
@param url URL to file/resource being included
Processes an include