Repository: logging-log4j2 Updated Branches: refs/heads/release-2.x 93e160bb2 -> 74bc7e250
[LOG4J2-2491] Allow all Appenders to optionally carry a Property array. Allow all Appenders to optionally carry a Property array. This allows 3rd party tooling to read and write properties for their own use. This refactoring pulls up the properties instance variable and methods from org.apache.logging.log4j.kafka.appender.KafkaAppender.Builder to org.apache.logging.log4j.core.filter.AbstractFilterable.Builder. Also deprecate withFilter() in favor of setFilter(). Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/74bc7e25 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/74bc7e25 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/74bc7e25 Branch: refs/heads/release-2.x Commit: 74bc7e2507c3f5b707a29a50fa679df7eb6ae0b9 Parents: 93e160b Author: Gary Gregory <[email protected]> Authored: Mon Oct 29 11:16:57 2018 -0600 Committer: Gary Gregory <[email protected]> Committed: Mon Oct 29 11:16:57 2018 -0600 ---------------------------------------------------------------------- .../log4j/core/appender/FileAppender.java | 15 ++-- .../core/appender/MemoryMappedFileAppender.java | 11 ++- .../core/appender/RandomAccessFileAppender.java | 13 ++- .../core/appender/RollingFileAppender.java | 17 ++-- .../RollingRandomAccessFileAppender.java | 3 +- .../log4j/core/appender/SocketAppender.java | 7 +- .../log4j/core/appender/SyslogAppender.java | 21 +++-- .../core/appender/db/jdbc/JdbcAppender.java | 13 ++- .../core/appender/mom/kafka/KafkaAppender.java | 13 +-- .../log4j/core/filter/AbstractFilterable.java | 89 ++++++++++++-------- .../log4j/web/appender/ServletAppender.java | 3 +- src/changes/changes.xml | 3 + 12 files changed, 106 insertions(+), 102 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java index 8e5736f..034fb15 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java @@ -226,14 +226,13 @@ public final class FileAppender extends AbstractOutputStreamAppender<FileManager final String advertiseUri, final Configuration config) { return FileAppender.<B>newBuilder() - .withAdvertise(Boolean.parseBoolean(advertise)) - .withAdvertiseUri(advertiseUri) - .withAppend(Booleans.parseBoolean(append, true)) - .withBufferedIo(Booleans.parseBoolean(bufferedIo, true)) - .withBufferSize(Integers.parseInt(bufferSizeStr, DEFAULT_BUFFER_SIZE)) - .setConfiguration(config) - .withFileName(fileName) - .withFilter(filter) + .withAdvertise(Boolean.parseBoolean(advertise)) + .withAdvertiseUri(advertiseUri) + .withAppend(Booleans.parseBoolean(append, true)) + .withBufferedIo(Booleans.parseBoolean(bufferedIo, true)) + .withBufferSize(Integers.parseInt(bufferSizeStr, DEFAULT_BUFFER_SIZE)) + .setConfiguration(config) + .withFileName(fileName).setFilter(filter) .withIgnoreExceptions(Booleans.parseBoolean(ignoreExceptions, true)) .withImmediateFlush(Booleans.parseBoolean(immediateFlush, true)) .withLayout(layout) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java index 17f64ee..a6162bd 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java @@ -233,12 +233,11 @@ public final class MemoryMappedFileAppender extends AbstractOutputStreamAppender // @formatter:off return MemoryMappedFileAppender.<B>newBuilder() - .setAdvertise(isAdvertise) - .setAdvertiseURI(advertiseURI) - .setAppend(isAppend) - .setConfiguration(config) - .setFileName(fileName) - .withFilter(filter) + .setAdvertise(isAdvertise) + .setAdvertiseURI(advertiseURI) + .setAppend(isAppend) + .setConfiguration(config) + .setFileName(fileName).setFilter(filter) .withIgnoreExceptions(ignoreExceptions) .withImmediateFlush(isImmediateFlush) .withLayout(layout) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java index d7ec920..0ea8d99 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java @@ -222,13 +222,12 @@ public final class RandomAccessFileAppender extends AbstractOutputStreamAppender final int bufferSize = Integers.parseInt(bufferSizeStr, RandomAccessFileManager.DEFAULT_BUFFER_SIZE); return RandomAccessFileAppender.<B>newBuilder() - .setAdvertise(isAdvertise) - .setAdvertiseURI(advertiseURI) - .setAppend(isAppend) - .withBufferSize(bufferSize) - .setConfiguration(configuration) - .setFileName(fileName) - .withFilter(filter) + .setAdvertise(isAdvertise) + .setAdvertiseURI(advertiseURI) + .setAppend(isAppend) + .withBufferSize(bufferSize) + .setConfiguration(configuration) + .setFileName(fileName).setFilter(filter) .withIgnoreExceptions(ignoreExceptions) .withImmediateFlush(isFlush) .withLayout(layout) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java index def63a4..cb9303a 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java @@ -378,15 +378,14 @@ public final class RollingFileAppender extends AbstractOutputStreamAppender<Roll final int bufferSize = Integers.parseInt(bufferSizeStr, DEFAULT_BUFFER_SIZE); // @formatter:off return RollingFileAppender.<B>newBuilder() - .withAdvertise(Boolean.parseBoolean(advertise)) - .withAdvertiseUri(advertiseUri) - .withAppend(Booleans.parseBoolean(append, true)) - .withBufferedIo(Booleans.parseBoolean(bufferedIO, true)) - .withBufferSize(bufferSize) - .setConfiguration(config) - .withFileName(fileName) - .withFilePattern(filePattern) - .withFilter(filter) + .withAdvertise(Boolean.parseBoolean(advertise)) + .withAdvertiseUri(advertiseUri) + .withAppend(Booleans.parseBoolean(append, true)) + .withBufferedIo(Booleans.parseBoolean(bufferedIO, true)) + .withBufferSize(bufferSize) + .setConfiguration(config) + .withFileName(fileName) + .withFilePattern(filePattern).setFilter(filter) .withIgnoreExceptions(Booleans.parseBoolean(ignore, true)) .withImmediateFlush(Booleans.parseBoolean(immediateFlush, true)) .withLayout(layout) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java index f43ccd0..a3d8611 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java @@ -334,8 +334,7 @@ public final class RollingRandomAccessFileAppender extends AbstractOutputStreamA .withBufferSize(bufferSize) .setConfiguration(configuration) .withFileName(fileName) - .withFilePattern(filePattern) - .withFilter(filter) + .withFilePattern(filePattern).setFilter(filter) .withIgnoreExceptions(isIgnoreExceptions) .withImmediateFlush(isImmediateFlush) .withLayout(layout) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java index b1d167c..ce4d254 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java @@ -317,10 +317,9 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM // @formatter:off return newBuilder() - .withAdvertise(advertise) - .setConfiguration(configuration) - .withConnectTimeoutMillis(connectTimeoutMillis) - .withFilter(filter) + .withAdvertise(advertise) + .setConfiguration(configuration) + .withConnectTimeoutMillis(connectTimeoutMillis).setFilter(filter) .withHost(host) .withIgnoreExceptions(ignoreExceptions) .withImmediateFail(immediateFail) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java index 26b435f..2b14598 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java @@ -387,17 +387,16 @@ public class SyslogAppender extends SocketAppender { // @formatter:off return SyslogAppender.<B>newSyslogAppenderBuilder() - .withHost(host) - .withPort(port) - .withProtocol(EnglishEnums.valueOf(Protocol.class, protocolStr)) - .withSslConfiguration(sslConfiguration) - .withConnectTimeoutMillis(connectTimeoutMillis) - .withReconnectDelayMillis(reconnectDelayMillis) - .withImmediateFail(immediateFail) - .withName(appName) - .withImmediateFlush(immediateFlush) - .withIgnoreExceptions(ignoreExceptions) - .withFilter(filter) + .withHost(host) + .withPort(port) + .withProtocol(EnglishEnums.valueOf(Protocol.class, protocolStr)) + .withSslConfiguration(sslConfiguration) + .withConnectTimeoutMillis(connectTimeoutMillis) + .withReconnectDelayMillis(reconnectDelayMillis) + .withImmediateFail(immediateFail) + .withName(appName) + .withImmediateFlush(immediateFlush) + .withIgnoreExceptions(ignoreExceptions).setFilter(filter) .setConfiguration(configuration) .withAdvertise(advertise) .setFacility(facility) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppender.java index 974d87e..a89e5e0 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppender.java @@ -86,13 +86,12 @@ public final class JdbcAppender extends AbstractDatabaseAppender<JdbcDatabaseMan final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true); return JdbcAppender.<B>newBuilder() - .setBufferSize(bufferSizeInt) - .setColumnConfigs(columnConfigs) - .setConnectionSource(connectionSource) - .setTableName(tableName) - .withName(name) - .withIgnoreExceptions(ignoreExceptions) - .withFilter(filter) + .setBufferSize(bufferSizeInt) + .setColumnConfigs(columnConfigs) + .setConnectionSource(connectionSource) + .setTableName(tableName) + .withName(name) + .withIgnoreExceptions(ignoreExceptions).setFilter(filter) .build(); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java index f7d50af..e4d8e6b 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java @@ -60,9 +60,6 @@ public final class KafkaAppender extends AbstractAppender { @PluginAttribute(value = "syncSend", defaultBoolean = true) private boolean syncSend; - @PluginElement("Properties") - private Property[] properties; - @SuppressWarnings("resource") @Override public KafkaAppender build() { @@ -72,7 +69,7 @@ public final class KafkaAppender extends AbstractAppender { return null; } final KafkaManager kafkaManager = - new KafkaManager(getConfiguration().getLoggerContext(), getName(), topic, syncSend, properties, key); + new KafkaManager(getConfiguration().getLoggerContext(), getName(), topic, syncSend, getProperties(), key); return new KafkaAppender(getName(), layout, getFilter(), isIgnoreExceptions(), kafkaManager); } @@ -84,10 +81,6 @@ public final class KafkaAppender extends AbstractAppender { return syncSend; } - public Property[] getProperties() { - return properties; - } - public B setTopic(final String topic) { this.topic = topic; return asBuilder(); @@ -98,10 +91,6 @@ public final class KafkaAppender extends AbstractAppender { return asBuilder(); } - public B setProperties(final Property[] properties) { - this.properties = properties; - return asBuilder(); - } } @Deprecated http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java index 3bd20ce..34234ff 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java @@ -23,6 +23,7 @@ import org.apache.logging.log4j.core.AbstractLifeCycle; import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.LifeCycle2; import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.config.Property; import org.apache.logging.log4j.core.config.plugins.PluginElement; /** @@ -40,20 +41,40 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi @PluginElement("Filter") private Filter filter; - public Filter getFilter() { - return filter; - } + @PluginElement("Properties") + private Property[] properties; @SuppressWarnings("unchecked") public B asBuilder() { return (B) this; } - public B withFilter(final Filter filter) { + public Filter getFilter() { + return filter; + } + + public Property[] getProperties() { + return properties; + } + + public B setFilter(final Filter filter) { this.filter = filter; return asBuilder(); } + public B setProperties(Property[] properties) { + this.properties = properties; + return asBuilder(); + } + + /** + * @deprecated Use {@link #setFilter(Filter)}. + */ + @Deprecated + public B withFilter(final Filter filter) { + return setFilter(filter); + } + } /** @@ -61,20 +82,11 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi */ private volatile Filter filter; - protected AbstractFilterable(final Filter filter) { - this.filter = filter; - } - protected AbstractFilterable() { } - /** - * Returns the Filter. - * @return the Filter or null. - */ - @Override - public Filter getFilter() { - return filter; + protected AbstractFilterable(final Filter filter) { + this.filter = filter; } /** @@ -97,6 +109,34 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi } /** + * Returns the Filter. + * @return the Filter or null. + */ + @Override + public Filter getFilter() { + return filter; + } + + /** + * Determines if a Filter is present. + * @return false if no Filter is present. + */ + @Override + public boolean hasFilter() { + return filter != null; + } + + /** + * Determine if the LogEvent should be processed or ignored. + * @param event The LogEvent. + * @return true if the LogEvent should be processed. + */ + @Override + public boolean isFiltered(final LogEvent event) { + return filter != null && filter.filter(event) == Filter.Result.DENY; + } + + /** * Removes a Filter. * @param filter The Filter to remove. */ @@ -122,15 +162,6 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi } /** - * Determines if a Filter is present. - * @return false if no Filter is present. - */ - @Override - public boolean hasFilter() { - return filter != null; - } - - /** * Make the Filter available for use. */ @Override @@ -172,14 +203,4 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi return stopped; } - /** - * Determine if the LogEvent should be processed or ignored. - * @param event The LogEvent. - * @return true if the LogEvent should be processed. - */ - @Override - public boolean isFiltered(final LogEvent event) { - return filter != null && filter.filter(event) == Filter.Result.DENY; - } - } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java ---------------------------------------------------------------------- diff --git a/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java b/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java index b7e30c2..6dace71 100644 --- a/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java +++ b/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java @@ -121,8 +121,7 @@ public class ServletAppender extends AbstractAppender { public static ServletAppender createAppender(final Layout<? extends Serializable> layout, final Filter filter, final String name, final boolean ignoreExceptions) { // @formatter:off - return newBuilder() - .withFilter(filter) + return newBuilder().setFilter(filter) .withIgnoreExceptions(ignoreExceptions) .withLayout(layout) .withName(name) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74bc7e25/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index bf0f5d6..4298dd2 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -106,6 +106,9 @@ <action issue="LOG4J2-2489" dev="ggregory" type="update"> JDBC Appender should release parameter resources ASAP. </action> + <action issue="LOG4J2-2491" dev="ggregory" type="update"> + Allow all Appenders to optionally carry a Property array. + </action> </release> <release version="2.11.1" date="2018-07-22" description="GA Release 2.11.1"> <action issue="LOG4J2-2389" dev="rgoers" type="fix" due-to="Liu Wen">
