use of org.apache.log4j.builders.BooleanHolder in project logging-log4j2 by apache.
the class AsyncAppenderBuilder method parseAppender.
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
String name = getNameAttribute(appenderElement);
Holder<List<String>> appenderRefs = new Holder<>(new ArrayList<>());
Holder<Boolean> blocking = new BooleanHolder();
Holder<Boolean> includeLocation = new BooleanHolder();
Holder<String> level = new Holder<>("trace");
Holder<Integer> bufferSize = new Holder<>(1024);
forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
switch(currentElement.getTagName()) {
case APPENDER_REF_TAG:
Appender appender = config.findAppenderByReference(currentElement);
if (appender != null) {
appenderRefs.get().add(appender.getName());
}
break;
case PARAM_TAG:
{
switch(getNameAttributeKey(currentElement)) {
case BUFFER_SIZE_PARAM:
{
String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for BufferSize parameter. Defaulting to 1024.");
} else {
bufferSize.set(Integer.parseInt(value));
}
break;
}
case BLOCKING_PARAM:
{
String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Blocking parameter. Defaulting to false.");
} else {
blocking.set(Boolean.parseBoolean(value));
}
break;
}
case INCLUDE_LOCATION_PARAM:
{
String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for IncludeLocation parameter. Defaulting to false.");
} else {
includeLocation.set(Boolean.parseBoolean(value));
}
break;
}
case THRESHOLD_PARAM:
{
String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
level.set(value);
}
break;
}
}
break;
}
}
});
return createAppender(name, level.get(), appenderRefs.get().toArray(new String[0]), blocking.get(), bufferSize.get(), includeLocation.get(), config);
}
use of org.apache.log4j.builders.BooleanHolder in project logging-log4j2 by pwntester.
the class AsyncAppenderBuilder method parseAppender.
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
String name = appenderElement.getAttribute(NAME_ATTR);
Holder<List<String>> appenderRefs = new Holder<>(new ArrayList<>());
Holder<Boolean> blocking = new BooleanHolder();
Holder<Boolean> includeLocation = new BooleanHolder();
Holder<String> level = new Holder<>("trace");
Holder<Integer> bufferSize = new Holder<>(1024);
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch(currentElement.getTagName()) {
case APPENDER_REF_TAG:
Appender appender = config.findAppenderByReference(currentElement);
if (appender != null) {
appenderRefs.get().add(appender.getName());
}
break;
case PARAM_TAG:
{
switch(currentElement.getAttribute(NAME_ATTR)) {
case BUFFER_SIZE_PARAM:
{
String value = currentElement.getAttribute(VALUE_ATTR);
if (value == null) {
LOGGER.warn("No value supplied for BufferSize parameter. Defaulting to 1024.");
} else {
bufferSize.set(Integer.parseInt(value));
}
break;
}
case BLOCKING_PARAM:
{
String value = currentElement.getAttribute(VALUE_ATTR);
if (value == null) {
LOGGER.warn("No value supplied for Blocking parameter. Defaulting to false.");
} else {
blocking.set(Boolean.parseBoolean(value));
}
break;
}
case INCLUDE_LOCATION_PARAM:
{
String value = currentElement.getAttribute(VALUE_ATTR);
if (value == null) {
LOGGER.warn("No value supplied for IncludeLocation parameter. Defaulting to false.");
} else {
includeLocation.set(Boolean.parseBoolean(value));
}
break;
}
case THRESHOLD_PARAM:
{
String value = currentElement.getAttribute(VALUE_ATTR);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
level.set(value);
}
break;
}
}
break;
}
}
});
return createAppender(name, level.get(), appenderRefs.get().toArray(new String[0]), blocking.get(), bufferSize.get(), includeLocation.get(), config);
}
Aggregations