docs: protected static void setLogbackInternal(final String logFileName, final String rollPattern, final boolean keepConsoleOpen) {
      if(System.getProperty("tsdb.logback.file", null) == null) {
        System.setProperty("tsdb.logback.file", logFileName); 
      }
      System.setProperty("tsd.logback.rollpattern", insertPattern(logFileName, rollPattern));
      BasicStatusManager bsm = new BasicStatusManager();
      for(StatusListener listener: bsm.getCopyOfStatusListenerList()) {
        log.info("Status Listener: {}", listener);
      }
      try {
        final URL url = OpenTSDBMain.class.getClassLoader().getResource("file-logback.xml");
        final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
        try {
          final JoranConfigurator configurator = new JoranConfigurator();
          configurator.setContext(context);
          configurator.doConfigure(url);
          if(!keepConsoleOpen) {
            final ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
            root.detachAppender("STDOUT");
          }
          log.info("Set internal logback config with file [{}] and roll pattern [{}]", logFileName, rollPattern);
        } catch (JoranException je) {
          System.err.println("Failed to configure internal logback");
          je.printStackTrace(System.err);
        }                       
      } catch (Exception ex) {
        log.warn("Failed to set internal logback config with file [{}]", logFileName, ex);
      }
    }