public void configChanged() {
    setLevel(config.getLogLevel());
    useChildLogging = config.getLogFile() != null && !config.getLogFile().equals(new File(""))
        && config.getLogFileSizeLimit() != 0;

    if (useChildLogging()) {
      logDir = rollingFileHandler.getParentFile(config.getLogFile());
      // let archive id always follow main log id, not the vice versa
      // e.g. in getArchiveName(), it's using mainArchiveId = calcNextMainId(archiveDir);
      // This is the only place we assign mainLogId.
      // mainLogId is only referenced when useChildLogging==true
      mainLogId = rollingFileHandler.calcNextMainId(logDir, true);
    }
    if (started) {
      if (useChildLogging()) {
        if (mainLog) {
          rollLog();
        }
      } else {
        switchLogs(config.getLogFile(), true);
      }
    }
  }
Call when the config changes at runtime.
geode-core/src/main/java/org/apache/geode/internal/logging/ManagerLogWriter.java