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();
}