code: @Override
    protected void setupLogging(@Nullable final Level level) {
      TargetConsoleAppender.setTarget(System.out);
  
      // adapt configuration properties for logging unless already set
      if (level != null) {
        maybeSetProperty("shell.logging.console.threshold", level.name());
        maybeSetProperty("shell.logging.file.threshold", level.name());
        maybeSetProperty("shell.logging.root-level", level.name());
      }
  
      super.setupLogging(level);
    }
docs: Force logback to use current {@link System#out} reference before they are adapted by ThreadIO.