You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2022/01/16 16:15:39 UTC
[logging-log4j2] branch release-2.x updated: Refactor duplication.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/release-2.x by this push:
new 8493b93 Refactor duplication.
8493b93 is described below
commit 8493b93979f20f36e93cf72bba52547acfa541aa
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Jan 16 11:15:35 2022 -0500
Refactor duplication.
---
.../org/apache/log4j/builders/AbstractBuilder.java | 18 +++++++++++++++-
.../builders/appender/AsyncAppenderBuilder.java | 14 ++++++------
.../builders/appender/ConsoleAppenderBuilder.java | 10 ++++-----
.../appender/DailyRollingFileAppenderBuilder.java | 16 ++++++--------
.../builders/appender/FileAppenderBuilder.java | 16 ++++++--------
.../builders/appender/RewriteAppenderBuilder.java | 8 +++----
.../appender/RollingFileAppenderBuilder.java | 25 ++++++++++------------
.../builders/appender/SyslogAppenderBuilder.java | 14 ++++++------
.../builders/filter/LevelMatchFilterBuilder.java | 8 +++----
.../builders/filter/LevelRangeFilterBuilder.java | 10 ++++-----
.../builders/filter/StringMatchFilterBuilder.java | 8 +++----
.../log4j/builders/layout/TTCCLayoutBuilder.java | 14 ++++++------
.../org/apache/log4j/helpers/OptionConverter.java | 4 +++-
.../org/apache/log4j/xml/XmlConfiguration.java | 6 +++---
.../test/resources/log4j1-rolling-properties.xml | 2 +-
15 files changed, 84 insertions(+), 89 deletions(-)
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/AbstractBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/AbstractBuilder.java
index e144128..72fb985 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/AbstractBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/AbstractBuilder.java
@@ -16,6 +16,9 @@
*/
package org.apache.log4j.builders;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -32,6 +35,7 @@ import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.filter.CompositeFilter;
import org.apache.logging.log4j.core.filter.ThresholdFilter;
import org.apache.logging.log4j.status.StatusLogger;
+import org.w3c.dom.Element;
/**
* Base class for Log4j 1 component builders.
@@ -74,10 +78,18 @@ public abstract class AbstractBuilder {
String fullKey = prefix + key;
String value = properties.getProperty(fullKey);
value = value != null ? value : properties.getProperty(toLowerCase(fullKey), defaultValue);
- value = value == null ? defaultValue : OptionConverter.substVars(value, properties);
+ value = value == null ? defaultValue : substVars(value);
return value == null ? defaultValue : value;
}
+ protected String getNameAttribute(Element element) {
+ return element.getAttribute(NAME_ATTR);
+ }
+
+ protected String getValueAttribute(Element element) {
+ return element.getAttribute(VALUE_ATTR);
+ }
+
public boolean getBooleanProperty(String key) {
return Boolean.parseBoolean(getProperty(key, Boolean.FALSE.toString()));
}
@@ -131,6 +143,10 @@ public abstract class AbstractBuilder {
return null;
}
+ protected String substVars(String value) {
+ return OptionConverter.substVars(value, properties);
+ }
+
String toLowerCase(final String value) {
return value == null ? null : value.toLowerCase(Locale.ROOT);
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
index 3236557..15162db 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
@@ -19,9 +19,7 @@ package org.apache.log4j.builders.appender;
import static org.apache.log4j.builders.BuilderManager.CATEGORY;
import static org.apache.log4j.config.Log4j1Configuration.APPENDER_REF_TAG;
import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.ArrayList;
@@ -65,7 +63,7 @@ public class AsyncAppenderBuilder extends AbstractBuilder implements AppenderBui
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
- String name = appenderElement.getAttribute(NAME_ATTR);
+ String name = getNameAttribute(appenderElement);
AtomicReference<List<String>> appenderRefs = new AtomicReference<>(new ArrayList<>());
AtomicBoolean blocking = new AtomicBoolean();
AtomicBoolean includeLocation = new AtomicBoolean();
@@ -80,9 +78,9 @@ public class AsyncAppenderBuilder extends AbstractBuilder implements AppenderBui
}
break;
case PARAM_TAG: {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case BUFFER_SIZE_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for BufferSize parameter. Defaulting to 1024.");
} else {
@@ -91,7 +89,7 @@ public class AsyncAppenderBuilder extends AbstractBuilder implements AppenderBui
break;
}
case BLOCKING_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Blocking parameter. Defaulting to false.");
} else {
@@ -100,7 +98,7 @@ public class AsyncAppenderBuilder extends AbstractBuilder implements AppenderBui
break;
}
case INCLUDE_LOCATION_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for IncludeLocation parameter. Defaulting to false.");
} else {
@@ -109,7 +107,7 @@ public class AsyncAppenderBuilder extends AbstractBuilder implements AppenderBui
break;
}
case THRESHOLD_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
index 108d177..9fbd526 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
@@ -20,9 +20,7 @@ import static org.apache.log4j.builders.BuilderManager.CATEGORY;
import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.ArrayList;
@@ -66,7 +64,7 @@ public class ConsoleAppenderBuilder extends AbstractBuilder implements AppenderB
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
- String name = appenderElement.getAttribute(NAME_ATTR);
+ String name = getNameAttribute(appenderElement);
AtomicReference<String> target = new AtomicReference<>(SYSTEM_OUT);
AtomicReference<Layout> layout = new AtomicReference<>();
AtomicReference<List<Filter>> filters = new AtomicReference<>(new ArrayList<>());
@@ -80,9 +78,9 @@ public class ConsoleAppenderBuilder extends AbstractBuilder implements AppenderB
filters.get().add(config.parseFilters(currentElement));
break;
case PARAM_TAG: {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case TARGET: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for target parameter. Defaulting to System.out.");
} else {
@@ -101,7 +99,7 @@ public class ConsoleAppenderBuilder extends AbstractBuilder implements AppenderB
break;
}
case THRESHOLD_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
index 701bc74..9bca33a 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
@@ -20,9 +20,7 @@ import static org.apache.log4j.builders.BuilderManager.CATEGORY;
import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.Properties;
@@ -69,7 +67,7 @@ public class DailyRollingFileAppenderBuilder extends AbstractBuilder implements
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
- String name = appenderElement.getAttribute(NAME_ATTR);
+ String name = getNameAttribute(appenderElement);
AtomicReference<Layout> layout = new AtomicReference<>();
AtomicReference<Filter> filter = new AtomicReference<>();
AtomicReference<String> fileName = new AtomicReference<>();
@@ -87,12 +85,12 @@ public class DailyRollingFileAppenderBuilder extends AbstractBuilder implements
filter.set(config.parseFilters(currentElement));
break;
case PARAM_TAG: {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case FILE_PARAM:
- fileName.set(currentElement.getAttribute(VALUE_ATTR));
+ fileName.set(getValueAttribute(currentElement));
break;
case APPEND_PARAM: {
- String bool = currentElement.getAttribute(VALUE_ATTR);
+ String bool = getValueAttribute(currentElement);
if (bool != null) {
append.set(Boolean.parseBoolean(bool));
} else {
@@ -101,7 +99,7 @@ public class DailyRollingFileAppenderBuilder extends AbstractBuilder implements
break;
}
case BUFFERED_IO_PARAM: {
- String bool = currentElement.getAttribute(VALUE_ATTR);
+ String bool = getValueAttribute(currentElement);
if (bool != null) {
bufferedIo.set(Boolean.parseBoolean(bool));
} else {
@@ -110,7 +108,7 @@ public class DailyRollingFileAppenderBuilder extends AbstractBuilder implements
break;
}
case BUFFER_SIZE_PARAM: {
- String size = currentElement.getAttribute(VALUE_ATTR);
+ String size = getValueAttribute(currentElement);
if (size != null) {
bufferSize.set(Integer.parseInt(size));
} else {
@@ -119,7 +117,7 @@ public class DailyRollingFileAppenderBuilder extends AbstractBuilder implements
break;
}
case THRESHOLD_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
index 3390762..f110daa 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
@@ -20,9 +20,7 @@ import static org.apache.log4j.builders.BuilderManager.CATEGORY;
import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.Properties;
@@ -63,7 +61,7 @@ public class FileAppenderBuilder extends AbstractBuilder implements AppenderBuil
@Override
public Appender parseAppender(Element appenderElement, XmlConfiguration config) {
- String name = appenderElement.getAttribute(NAME_ATTR);
+ String name = getNameAttribute(appenderElement);
AtomicReference<Layout> layout = new AtomicReference<>();
AtomicReference<Filter> filter = new AtomicReference<>();
AtomicReference<String> fileName = new AtomicReference<>();
@@ -81,12 +79,12 @@ public class FileAppenderBuilder extends AbstractBuilder implements AppenderBuil
filter.set(config.parseFilters(currentElement));
break;
case PARAM_TAG: {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case FILE_PARAM:
- fileName.set(currentElement.getAttribute(VALUE_ATTR));
+ fileName.set(getValueAttribute(currentElement));
break;
case APPEND_PARAM: {
- String bool = currentElement.getAttribute(VALUE_ATTR);
+ String bool = getValueAttribute(currentElement);
if (bool != null) {
append.set(Boolean.parseBoolean(bool));
} else {
@@ -95,7 +93,7 @@ public class FileAppenderBuilder extends AbstractBuilder implements AppenderBuil
break;
}
case BUFFERED_IO_PARAM: {
- String bool = currentElement.getAttribute(VALUE_ATTR);
+ String bool = getValueAttribute(currentElement);
if (bool != null) {
bufferedIo.set(Boolean.parseBoolean(bool));
} else {
@@ -104,7 +102,7 @@ public class FileAppenderBuilder extends AbstractBuilder implements AppenderBuil
break;
}
case BUFFER_SIZE_PARAM: {
- String size = currentElement.getAttribute(VALUE_ATTR);
+ String size = getValueAttribute(currentElement);
if (size != null) {
bufferSize.set(Integer.parseInt(size));
} else {
@@ -113,7 +111,7 @@ public class FileAppenderBuilder extends AbstractBuilder implements AppenderBuil
break;
}
case THRESHOLD_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
index 6e25557..ce54a8f 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
@@ -20,9 +20,7 @@ import static org.apache.log4j.builders.BuilderManager.CATEGORY;
import static org.apache.log4j.config.Log4j1Configuration.APPENDER_REF_TAG;
import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.ArrayList;
@@ -68,7 +66,7 @@ public class RewriteAppenderBuilder extends AbstractBuilder implements AppenderB
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
- String name = appenderElement.getAttribute(NAME_ATTR);
+ String name = getNameAttribute(appenderElement);
AtomicReference<List<String>> appenderRefs = new AtomicReference<>(new ArrayList<>());
AtomicReference<RewritePolicy> rewritePolicyHolder = new AtomicReference<>();
AtomicReference<String> level = new AtomicReference<>();
@@ -93,8 +91,8 @@ public class RewriteAppenderBuilder extends AbstractBuilder implements AppenderB
break;
}
case PARAM_TAG: {
- if (currentElement.getAttribute(NAME_ATTR).equalsIgnoreCase(THRESHOLD_PARAM)) {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ if (getNameAttribute(currentElement).equalsIgnoreCase(THRESHOLD_PARAM)) {
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
index 37ce8a6..a2e0b2b 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
@@ -20,9 +20,7 @@ import static org.apache.log4j.builders.BuilderManager.CATEGORY;
import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.Properties;
@@ -64,13 +62,13 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
public RollingFileAppenderBuilder() {
}
- public RollingFileAppenderBuilder(String prefix, Properties props) {
- super(prefix, props);
+ public RollingFileAppenderBuilder(String prefix, Properties properties) {
+ super(prefix, properties);
}
@Override
public Appender parseAppender(Element appenderElement, XmlConfiguration config) {
- String name = appenderElement.getAttribute(NAME_ATTR);
+ String name = getNameAttribute(appenderElement);
AtomicReference<Layout> layout = new AtomicReference<>();
AtomicReference<Filter> filter = new AtomicReference<>();
AtomicReference<String> fileName = new AtomicReference<>();
@@ -90,12 +88,12 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
filter.set(config.parseFilters(currentElement));
break;
case PARAM_TAG: {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case FILE_PARAM:
- fileName.set(currentElement.getAttribute(VALUE_ATTR));
+ fileName.set(getValueAttribute(currentElement));
break;
case APPEND_PARAM: {
- String bool = currentElement.getAttribute(VALUE_ATTR);
+ String bool = getValueAttribute(currentElement);
if (bool != null) {
append.set(Boolean.parseBoolean(bool));
} else {
@@ -104,7 +102,7 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
break;
}
case BUFFERED_IO_PARAM: {
- String bool = currentElement.getAttribute(VALUE_ATTR);
+ String bool = getValueAttribute(currentElement);
if (bool != null) {
bufferedIo.set(Boolean.parseBoolean(bool));
} else {
@@ -113,7 +111,7 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
break;
}
case BUFFER_SIZE_PARAM: {
- String size = currentElement.getAttribute(VALUE_ATTR);
+ String size = getValueAttribute(currentElement);
if (size != null) {
bufferSize.set(Integer.parseInt(size));
} else {
@@ -122,7 +120,7 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
break;
}
case MAX_BACKUP_INDEX: {
- String size = currentElement.getAttribute(VALUE_ATTR);
+ String size = getValueAttribute(currentElement);
if (size != null) {
maxBackups.set(size);
} else {
@@ -131,7 +129,7 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
break;
}
case MAX_SIZE_PARAM: {
- String size = currentElement.getAttribute(VALUE_ATTR);
+ String size = getValueAttribute(currentElement);
if (size != null) {
maxSize.set(size);
} else {
@@ -140,7 +138,7 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
break;
}
case THRESHOLD_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
@@ -157,7 +155,6 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
fileName.get(), level.get(), maxSize.get(), maxBackups.get());
}
-
@Override
public Appender parseAppender(final String name, final String appenderPrefix, final String layoutPrefix,
final String filterPrefix, final Properties props, final PropertiesConfiguration configuration) {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
index f63a622..21b9f96 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
@@ -20,9 +20,7 @@ import static org.apache.log4j.builders.BuilderManager.CATEGORY;
import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.io.Serializable;
@@ -74,7 +72,7 @@ public class SyslogAppenderBuilder extends AbstractBuilder implements AppenderBu
@Override
public Appender parseAppender(Element appenderElement, XmlConfiguration config) {
- String name = appenderElement.getAttribute(NAME_ATTR);
+ String name = getNameAttribute(appenderElement);
AtomicReference<Layout> layout = new AtomicReference<>();
AtomicReference<Filter> filter = new AtomicReference<>();
AtomicReference<String> facility = new AtomicReference<>();
@@ -90,16 +88,16 @@ public class SyslogAppenderBuilder extends AbstractBuilder implements AppenderBu
filter.set(config.parseFilters(currentElement));
break;
case PARAM_TAG: {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case SYSLOG_HOST_PARAM: {
- host.set(currentElement.getAttribute(VALUE_ATTR));
+ host.set(getValueAttribute(currentElement));
break;
}
case FACILITY_PARAM:
- facility.set(currentElement.getAttribute(VALUE_ATTR));
+ facility.set(getValueAttribute(currentElement));
break;
case THRESHOLD_PARAM: {
- String value = currentElement.getAttribute(VALUE_ATTR);
+ String value = getValueAttribute(currentElement);
if (value == null) {
LOGGER.warn("No value supplied for Threshold parameter, ignoring.");
} else {
@@ -108,7 +106,7 @@ public class SyslogAppenderBuilder extends AbstractBuilder implements AppenderBu
break;
}
case PROTOCOL_PARAM:
- protocol.set(Protocol.valueOf(currentElement.getAttribute(VALUE_ATTR)));
+ protocol.set(Protocol.valueOf(getValueAttribute(currentElement)));
break;
}
break;
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
index 0f7fbf9..194a8a5 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
@@ -17,8 +17,6 @@
package org.apache.log4j.builders.filter;
import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.Properties;
@@ -60,12 +58,12 @@ public class LevelMatchFilterBuilder extends AbstractBuilder implements FilterBu
final AtomicBoolean acceptOnMatch = new AtomicBoolean();
forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case LEVEL:
- level.set(currentElement.getAttribute(VALUE_ATTR));
+ level.set(getValueAttribute(currentElement));
break;
case ACCEPT_ON_MATCH:
- acceptOnMatch.set(Boolean.parseBoolean(currentElement.getAttribute(VALUE_ATTR)));
+ acceptOnMatch.set(Boolean.parseBoolean(getValueAttribute(currentElement)));
break;
}
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
index d4792c3..6a5dd78 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
@@ -17,8 +17,6 @@
package org.apache.log4j.builders.filter;
import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.Properties;
@@ -62,15 +60,15 @@ public class LevelRangeFilterBuilder extends AbstractBuilder implements FilterBu
final AtomicBoolean acceptOnMatch = new AtomicBoolean();
forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case LEVEL_MAX:
- levelMax.set(currentElement.getAttribute(VALUE_ATTR));
+ levelMax.set(getValueAttribute(currentElement));
break;
case LEVEL_MIN:
- levelMax.set(currentElement.getAttribute(VALUE_ATTR));
+ levelMax.set(getValueAttribute(currentElement));
break;
case ACCEPT_ON_MATCH:
- acceptOnMatch.set(Boolean.parseBoolean(currentElement.getAttribute(VALUE_ATTR)));
+ acceptOnMatch.set(Boolean.parseBoolean(getValueAttribute(currentElement)));
break;
}
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
index 96326a3..00de770 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
@@ -17,8 +17,6 @@
package org.apache.log4j.builders.filter;
import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -51,12 +49,12 @@ public class StringMatchFilterBuilder extends AbstractBuilder implements FilterB
final AtomicReference<String> text = new AtomicReference<>();
forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case STRING_TO_MATCH:
- text.set(currentElement.getAttribute(VALUE_ATTR));
+ text.set(getValueAttribute(currentElement));
break;
case ACCEPT_ON_MATCH:
- acceptOnMatch.set(Boolean.parseBoolean(currentElement.getAttribute(VALUE_ATTR)));
+ acceptOnMatch.set(Boolean.parseBoolean(getValueAttribute(currentElement)));
break;
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
index af9c083..1f53571 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
@@ -17,9 +17,7 @@
package org.apache.log4j.builders.layout;
import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
import java.util.Properties;
@@ -68,21 +66,21 @@ public class TTCCLayoutBuilder extends AbstractBuilder implements LayoutBuilder
final AtomicReference<String> timezone = new AtomicReference<>();
forEachElement(layoutElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals(PARAM_TAG)) {
- switch (currentElement.getAttribute(NAME_ATTR)) {
+ switch (getNameAttribute(currentElement)) {
case THREAD_PRINTING_PARAM:
- threadPrinting.set(Boolean.parseBoolean(currentElement.getAttribute(VALUE_ATTR)));
+ threadPrinting.set(Boolean.parseBoolean(getValueAttribute(currentElement)));
break;
case CATEGORY_PREFIXING_PARAM:
- categoryPrefixing.set(Boolean.parseBoolean(currentElement.getAttribute(VALUE_ATTR)));
+ categoryPrefixing.set(Boolean.parseBoolean(getValueAttribute(currentElement)));
break;
case CONTEXT_PRINTING_PARAM:
- contextPrinting.set(Boolean.parseBoolean(currentElement.getAttribute(VALUE_ATTR)));
+ contextPrinting.set(Boolean.parseBoolean(getValueAttribute(currentElement)));
break;
case DATE_FORMAT_PARAM:
- dateFormat.set(currentElement.getAttribute(VALUE_ATTR));
+ dateFormat.set(getValueAttribute(currentElement));
break;
case TIMEZONE_FORMAT:
- timezone.set(currentElement.getAttribute(VALUE_ATTR));
+ timezone.set(getValueAttribute(currentElement));
break;
}
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/OptionConverter.java b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/OptionConverter.java
index 545fdf0..e4030f1 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/OptionConverter.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/OptionConverter.java
@@ -344,7 +344,9 @@ public class OptionConverter {
private static String substVars(final String val, final Properties props, final List<String> keys)
throws IllegalArgumentException {
-
+ if (val == null) {
+ return null;
+ }
final StringBuilder sbuf = new StringBuilder();
int i = 0;
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
index 3f51153..e83e68b 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
@@ -664,9 +664,9 @@ public class XmlConfiguration extends Log4j1Configuration {
LOGGER.debug("{} level set to {}", catName, logger.getLevel());
}
- private void setParameter(Element elem, PropertySetter propSetter) {
- String name = subst(elem.getAttribute(NAME_ATTR));
- String value = (elem.getAttribute(VALUE_ATTR));
+ private void setParameter(Element element, PropertySetter propSetter) {
+ String name = subst(element.getAttribute(NAME_ATTR));
+ String value = (element.getAttribute(VALUE_ATTR));
value = subst(OptionConverter.convertSpecialChars(value));
propSetter.setProperty(name, value);
}
diff --git a/log4j-1.2-api/src/test/resources/log4j1-rolling-properties.xml b/log4j-1.2-api/src/test/resources/log4j1-rolling-properties.xml
index c138a25..a272630 100644
--- a/log4j-1.2-api/src/test/resources/log4j1-rolling-properties.xml
+++ b/log4j-1.2-api/src/test/resources/log4j1-rolling-properties.xml
@@ -18,7 +18,7 @@
<!-- See https://issues.apache.org/jira/browse/LOG4J2-3328 -->
<log4j:configuration>
<appender name="DAILY" class="org.apache.log4j.RollingFileAppender">
- <param name="File" value="${sys:test.directory}/logs/etl.log" />
+ <param name="File" value="${test.directory}/logs/etl.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="GATEWAY: %p %d [%t] %c{1}.%M(%L) | %m%n" />