docs: private ReactorListener buildReactorListener() throws IOException {
          List<ReactorListener> r = Lists.newArrayList(ServiceLoader.load(InitReactorListener.class, Thread.currentThread().getContextClassLoader()));
          r.add(new ReactorListener() {
              final Level level = Level.parse( Configuration.getStringConfigParameter("initLogLevel", "FINE") );
              public void onTaskStarted(Task t) {
                  LOGGER.log(level, "Started {0}", getDisplayName(t));
              }
  
              public void onTaskCompleted(Task t) {
                  LOGGER.log(level, "Completed {0}", getDisplayName(t));
              }
  
              public void onTaskFailed(Task t, Throwable err, boolean fatal) {
                  LOGGER.log(SEVERE, "Failed " + getDisplayName(t), err);
              }
  
              public void onAttained(Milestone milestone) {
                  Level lv = level;
                  String s = "Attained "+milestone.toString();
                  if (milestone instanceof InitMilestone) {
                      lv = Level.INFO; // noteworthy milestones --- at least while we debug problems further
                      onInitMilestoneAttained((InitMilestone) milestone);
                      s = milestone.toString();
                  }
                  LOGGER.log(lv,s);
              }
          });
          return new ReactorListener.Aggregator(r);
      }