Search in sources :

Example 1 with BooleanHolder

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);
}
Also used : Appender(org.apache.log4j.Appender) AsyncAppender(org.apache.logging.log4j.core.appender.AsyncAppender) BooleanHolder(org.apache.log4j.builders.BooleanHolder) Holder(org.apache.log4j.builders.Holder) ArrayList(java.util.ArrayList) List(java.util.List) BooleanHolder(org.apache.log4j.builders.BooleanHolder)

Example 2 with BooleanHolder

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);
}
Also used : Appender(org.apache.log4j.Appender) AsyncAppender(org.apache.logging.log4j.core.appender.AsyncAppender) BooleanHolder(org.apache.log4j.builders.BooleanHolder) Holder(org.apache.log4j.builders.Holder) ArrayList(java.util.ArrayList) List(java.util.List) BooleanHolder(org.apache.log4j.builders.BooleanHolder)

Aggregations

ArrayList (java.util.ArrayList)2 List (java.util.List)2 Appender (org.apache.log4j.Appender)2 BooleanHolder (org.apache.log4j.builders.BooleanHolder)2 Holder (org.apache.log4j.builders.Holder)2 AsyncAppender (org.apache.logging.log4j.core.appender.AsyncAppender)2