docs: public String getConfigInfo(ModuleConfig config) {
          if (loggingDisabled) {
              return null;
          }
          StringBuilder info = new StringBuilder();
  
          List<String> methodNames = new ArrayList<>();
  
          Class currentClass = ProxyUtils.getUnproxiedClass(config.getClass());
          ModuleConfigName moduleConfigName = (ModuleConfigName) currentClass.getAnnotation(ModuleConfigName.class);
  
          while (currentClass != null &&
                  !Object.class.getName().equals(currentClass.getName())) {
  
              StringBuilder configLogging = new StringBuilder();
  
              //inspect the other methods of the implementing class
              for (Method currentMethod : currentClass.getDeclaredMethods()) {
                  if (!currentMethod.isAnnotationPresent(ConfigEntry.class) ||
                          methodNames.contains(currentMethod.getName())) {
                      continue;
                  }
  
                  methodNames.add(currentMethod.getName());
  
                  configLogging.append("   method:\t").append(currentMethod.getName());
                  configLogging.append(separator);
  
                  addConfigEntryValue(config, configLogging, currentMethod);
  
                  configLogging.append(separator);
                  configLogging.append(separator);
              }
  
              // Was there anything annotated with @ConfigEntry
              if (configLogging.length() > 0) {
  
                  outputConfigurationName(info, moduleConfigName, currentClass);
  
                  info.append(configLogging);
              }
  
              // Look into the parent class
              currentClass = currentClass.getSuperclass();
          }
  
          return info.toString();
      }