[ https://issues.apache.org/jira/browse/LOG4J2-2400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16573871#comment-16573871 ]
ASF GitHub Bot commented on LOG4J2-2400: ---------------------------------------- Github user cakofony commented on a diff in the pull request: https://github.com/apache/logging-log4j2/pull/206#discussion_r208730159 --- Diff: log4j-redis/src/main/java/org/apache/logging/log4j/redis/appender/RedisManager.java --- @@ -0,0 +1,86 @@ +package org.apache.logging.log4j.redis.appender; + +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.appender.AbstractManager; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.JedisPoolConfig; +import redis.clients.jedis.exceptions.JedisConnectionException; + +import java.nio.charset.Charset; +import java.util.concurrent.TimeUnit; + +class RedisManager extends AbstractManager { + + private final byte[][] byteKeys; + private final String host; + private final int port; + private final Charset charset; + private final boolean ssl; + private JedisPool jedisPool; + + RedisManager(LoggerContext loggerContext, String name, String[] keys, String host, int port, boolean ssl, Charset charset) { + super(loggerContext, name); + this.byteKeys = new byte[keys.length][]; + for (int i = 0; i < keys.length; i++) { + this.byteKeys[i] = keys[i].getBytes(charset); + } + this.charset = charset; + this.host = host; + this.port = port; + this.ssl = ssl; + } + + JedisPool createPool(String host, int port, boolean ssl) { + JedisPoolConfig poolConfig = new JedisPoolConfig(); + poolConfig.setMaxIdle(5); + poolConfig.setMinIdle(1); + poolConfig.setTestOnBorrow(true); + poolConfig.setTestOnReturn(true); + poolConfig.setTestWhileIdle(true); + poolConfig.setNumTestsPerEvictionRun(10); + poolConfig.setTimeBetweenEvictionRunsMillis(60000); + return new JedisPool(poolConfig, host, port, ssl); --- End diff -- Can we make all the jedis pool config parameters configurable? > Support for log4j2 RedisAppender > -------------------------------- > > Key: LOG4J2-2400 > URL: https://issues.apache.org/jira/browse/LOG4J2-2400 > Project: Log4j 2 > Issue Type: New Feature > Components: Appenders > Reporter: Kevin Andrew Meurer > Priority: Major > > Redis functions well as a temporary queue for event data en route to another > data store. For example, Redis may be used to improve the fault-tolerance of > a logging pipeline by serving as an intermediary as log events move to a > separate storage layer (i.e. log4j2 - > Redis < - Logstash -> Elasticsearch). > As a result, event processing applications may wish to use Redis instead of > Kafka as a message broker. We should add support for a RedisAppender to > support this use case. > Relevant dev list thread: > [https://lists.apache.org/thread.html/4967cf3cd4db367ba563143ccd1438b7c53830671881eb692642b8d9@%3Cdev.logging.apache.org%3E] -- This message was sent by Atlassian JIRA (v7.6.3#76005)