LOG4J2-2400 - Add Redis Appender
diff --git a/log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/LoggingRedisPoolConfiguration.java b/log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/LoggingRedisPoolConfiguration.java
index ba3deac..a14c69f 100644
--- a/log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/LoggingRedisPoolConfiguration.java
+++ b/log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/LoggingRedisPoolConfiguration.java
@@ -18,9 +18,9 @@
package org.apache.logging.log4j.redis.appender;
import org.apache.logging.log4j.core.Core;
-import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.plugins.Plugin;
import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
+import org.apache.logging.log4j.plugins.PluginFactory;
import redis.clients.jedis.JedisPoolConfig;
/**
@@ -41,12 +41,12 @@
/**
* Creates a LoggingRedisPoolConfiguration from standard pool parameters.
*/
- @PluginBuilderFactory
+ @PluginFactory
public static Builder newBuilder() {
return new LoggingRedisPoolConfiguration.Builder();
}
- private static class Builder implements org.apache.logging.log4j.core.util.Builder<LoggingRedisPoolConfiguration> {
+ private static class Builder implements org.apache.logging.log4j.plugins.util.Builder<LoggingRedisPoolConfiguration> {
@PluginBuilderAttribute("minIdle")
private int minIdle = JedisPoolConfig.DEFAULT_MIN_IDLE;
diff --git a/log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/RedisAppender.java b/log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/RedisAppender.java
index 4a19717..557ed6e 100644
--- a/log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/RedisAppender.java
+++ b/log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/RedisAppender.java
@@ -17,16 +17,19 @@
package org.apache.logging.log4j.redis.appender;
-import org.apache.logging.log4j.LoggingException;
-import org.apache.logging.log4j.core.*;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.StringLayout;
import org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.logging.log4j.core.appender.AppenderLoggingException;
-import org.apache.logging.log4j.core.config.Node;
-import org.apache.logging.log4j.core.config.plugins.Plugin;
-import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
-import org.apache.logging.log4j.core.config.plugins.PluginElement;
-import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
+import org.apache.logging.log4j.plugins.Node;
+import org.apache.logging.log4j.plugins.Plugin;
+import org.apache.logging.log4j.plugins.PluginBuilderAttribute;
+import org.apache.logging.log4j.plugins.PluginElement;
+import org.apache.logging.log4j.plugins.PluginFactory;
+import org.apache.logging.log4j.plugins.validation.constraints.Required;
import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
import org.apache.logging.log4j.spi.AbstractLogger;
@@ -67,7 +70,7 @@
* @param <B> The type to build
*/
public static class Builder<B extends Builder<B>> extends AbstractAppender.Builder<B>
- implements org.apache.logging.log4j.core.util.Builder<RedisAppender> {
+ implements org.apache.logging.log4j.plugins.util.Builder<RedisAppender> {
private final String KEY_SEPARATOR = ",";
@@ -187,7 +190,7 @@
* Creates a builder for a RedisAppender.
* @return a builder for a RedisAppender.
*/
- @PluginBuilderFactory
+ @PluginFactory
public static <B extends Builder<B>> B newBuilder() {
return new Builder<B>().asBuilder();
}
diff --git a/log4j-redis/src/test/java/org/apache/logging/log4j/redis/appender/RedisAppenderTest.java b/log4j-redis/src/test/java/org/apache/logging/log4j/redis/appender/RedisAppenderTest.java
index 530a192..3236c79 100644
--- a/log4j-redis/src/test/java/org/apache/logging/log4j/redis/appender/RedisAppenderTest.java
+++ b/log4j-redis/src/test/java/org/apache/logging/log4j/redis/appender/RedisAppenderTest.java
@@ -53,12 +53,12 @@
initMocks();
appender = new AppenderTestRedisAppenderBuilder()
- .withName("RedisAppender")
+ .setName("RedisAppender")
.setKeys(DESTINATION_KEY)
.setHost(HOST)
.setPort(PORT)
.setImmediateFlush(true)
- .withLayout(PatternLayout.createDefaultLayout())
+ .setLayout(PatternLayout.createDefaultLayout())
.build();
logEvent = createLogEvent();
}
@@ -91,13 +91,13 @@
@Test
public void testQueuesLogEvents() {
appender = new AppenderTestRedisAppenderBuilder()
- .withName("RedisAppender")
+ .setName("RedisAppender")
.setKeys(DESTINATION_KEY)
.setHost(HOST)
.setPort(PORT)
.setQueueCapacity(2)
.setImmediateFlush(false)
- .withLayout(PatternLayout.newBuilder().withPattern("%m").build())
+ .setLayout(PatternLayout.newBuilder().setPattern("%m").build())
.build();
appender.append(logEvent);
@@ -107,13 +107,13 @@
@Test
public void testAttemptsSendWhenQueueReachesCapacity() {
appender = new AppenderTestRedisAppenderBuilder()
- .withName("RedisAppender")
+ .setName("RedisAppender")
.setKeys(DESTINATION_KEY)
.setHost(HOST)
.setPort(PORT)
.setQueueCapacity(1)
.setImmediateFlush(false)
- .withLayout(PatternLayout.newBuilder().withPattern("%m").build())
+ .setLayout(PatternLayout.newBuilder().setPattern("%m").build())
.build();
appender.append(logEvent);
@@ -125,13 +125,13 @@
@Test
public void testFlushesQueueAtExceededCapacity() {
appender = new AppenderTestRedisAppenderBuilder()
- .withName("RedisAppender")
+ .setName("RedisAppender")
.setKeys(DESTINATION_KEY)
.setHost(HOST)
.setPort(PORT)
.setQueueCapacity(1)
.setImmediateFlush(false)
- .withLayout(PatternLayout.newBuilder().withPattern("%m").build())
+ .setLayout(PatternLayout.newBuilder().setPattern("%m").build())
.build();
appender.append(logEvent);
@@ -142,12 +142,12 @@
@Test
public void testFlushesQueueAtEndOfBatch() {
appender = new AppenderTestRedisAppenderBuilder()
- .withName("RedisAppender")
+ .setName("RedisAppender")
.setKeys(DESTINATION_KEY)
.setHost(HOST)
.setPort(PORT)
.setImmediateFlush(false)
- .withLayout(PatternLayout.newBuilder().withPattern("%m").build())
+ .setLayout(PatternLayout.newBuilder().setPattern("%m").build())
.build();
logEvent = createPartialLogEvent().setEndOfBatch(true).build();
@@ -158,12 +158,12 @@
@Test
public void testFlushesQueueOnAppenderStop() {
appender = new AppenderTestRedisAppenderBuilder()
- .withName("RedisAppender")
+ .setName("RedisAppender")
.setKeys(DESTINATION_KEY)
.setHost(HOST)
.setPort(PORT)
.setImmediateFlush(false)
- .withLayout(PatternLayout.newBuilder().withPattern("%m").build())
+ .setLayout(PatternLayout.newBuilder().setPattern("%m").build())
.build();
appender.append(logEvent);
Mockito.verify(manager, Mockito.times(0)).sendBulk(any());
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f6e7e53..ce80579 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -31,6 +31,9 @@
- "remove" - Removed
-->
<release version="3.0.0" date="2019-xx-xx" description="GA Release 3.0.0">
+ <action issue="LOG4J2-2400" dev="rgoers" type="add" due-to="Natalie Meurer">
+ Add Redis Appender.
+ </action>
<action issue="LOG4J2-2749" dev="vy" type="fix" due-to="Oleksii Khomchenko">
JsonLayout KeyValuePair should discard blank JSON keys.
</action>