code: public static Level addCustomLevel(String name, int intValue, String id, String resourceBundleName) {
          if (name == null) {
              throw new IllegalArgumentException("Parameter name can not be 'null' in this call.");
          }
          // Don't add duplicate entries but allow different names for the same level and the same name for different levels.
          Level level = null;
          try {
              level = Level.parse(name);
          } catch (IllegalArgumentException ex) {
              // Assume that there's no such level.
          }
          // If there's no such level or it has different integer value create a new one.
          if (level == null || level.intValue() != intValue) {
              level = new CustomLevel(name, intValue, resourceBundleName);
          }
          addCustomLevel(level, id);
          return level;
      }
docs: Adds extra level recognizable by this formatter and Level.parse()
  
  @param name name of the level
  @param intValue integer value of the level
  @param id one character id to use for this level. If it's <code>null</code> first character of the level name will be used
  @param resourceBundleName resource bundle to use for level name translation
  @return newly generated level instance