private ConfigurationNode parse()

in log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v1/XmlV1ConfigurationParser.java [84:132]


    private ConfigurationNode parse(Element configurationElement) {
        ConfigurationNodeBuilder builder = ComponentUtils.newNodeBuilder().setPluginName("Configuration");
        switch (configurationElement.getTagName()) {
            case CONFIGURATION_TAG:
            case OLD_CONFIGURATION_TAG:
                break;
            default:
                throwUnknownElement(configurationElement);
        }

        String level = configurationElement.getAttribute(THRESHOLD_ATTR);

        ConfigurationNodeBuilder appendersBuilder =
                ComponentUtils.newNodeBuilder().setPluginName("Appenders");

        LoggerConfig rootLogger = new LoggerConfig("");
        rootLogger.setLevel("DEBUG");
        Collection<LoggerConfig> loggerConfigs = new ArrayList<>();
        XmlUtils.childStream(configurationElement).forEach(childElement -> {
            switch (childElement.getTagName()) {
                case APPENDER_TAG:
                    appendersBuilder.addChild(parseAppender(childElement));
                    break;
                case ROOT_TAG:
                    parseLoggerChildren(rootLogger, childElement);
                    break;
                case LOGGER_TAG:
                case OLD_LOGGER_TAG:
                    LoggerConfig loggerConfig = new LoggerConfig(childElement.getAttribute(NAME_ATTR));
                    loggerConfigs.add(parseLoggerChildren(loggerConfig, childElement));
                    break;
                default:
                    throwUnknownElement(childElement);
            }
        });
        builder.addChild(appendersBuilder.get());

        if (!level.isEmpty()) {
            builder.addChild(ComponentUtils.newThresholdFilter(level.toUpperCase(Locale.ROOT)));
        }

        ConfigurationNodeBuilder loggersNodeBuilder =
                ComponentUtils.newNodeBuilder().setPluginName("Loggers");
        loggersNodeBuilder.addChild(rootLogger.buildRoot());
        loggerConfigs.stream().map(LoggerConfig::buildLogger).forEach(loggersNodeBuilder::addChild);
        builder.addChild(loggersNodeBuilder.get());

        return builder.get();
    }