Hi,Matt Sicker

I used FailOverAppender, but I found that in the moment kafka down, the data 
was lost.

What kind of measures can be taken to avoid this situation

The attachment is a configuration file:log4j2.xml


Thanks,

Rui

________________________________
发件人: Matt Sicker <boa...@gmail.com>
发送时间: 2017年3月14日 15:19
收件人: Log4J Users List
主题: Re: log4j2 issue

The gist of what you're probably looking for is a failover appender
configuration: <
https://logging.apache.org/log4j/2.x/manual/appenders.html#FailoverAppender>.
This can be used to switch to another appender when one fails which is
perfect for networked appenders.

On 14 March 2017 at 07:00, Yang Rui <yang_ru...@outlook.com> wrote:

> Hi,
>
> I am Rui from China.
>
> We use both of KafkaAppender (with a AsyncAppender wrapper)
> and FileAppender of log4j2 with version 2.6.2 in the application.
>
> Here is the scenaria, when kafka cluster down and stop
> service, the application will slow down and wait for given timeout (
> request.timeout.ms)
>
> to response finally (The bufferSize of AsyncKafka is reached).
>
> I am wondering if there is any solution that the
> fileAppender can always work normally without any performance issue which
> affected
>
> by KafkaAppender. In other words, the KafkaAppender can "
> DISCARD" the logs when kafka cluster down while the application
>
> can output the logs by FileAppender.
>
>
> Thanks,
> Rui
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>



--
Matt Sicker <boa...@gmail.com>
<configuration>
	<Properties>
		<Property name="kafka-servers">ip:port</Property>
		<Property name="log-path">/applog/logging</Property>
	</Properties>

	<Appenders>

		<Kafka name="Kafka" topic="test_test" ignoreExceptions="false">
			<PatternLayout
				pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%t] %c{1} - %msg%n" />
			<Property name="bootstrap.servers">${kafka-servers}</Property>
			<Property name="request.timeout.ms">3000</Property>
			<Property name="max.block.ms">30000</Property>
			<Property name="retries">0</Property>
			<Property name="acks">0</Property>
		</Kafka>

		<Failover name="Failover" primary="Kafka" retryIntervalSeconds="30">
			<Failovers>
				<AppenderRef ref="RollingFile" />
			</Failovers>
		</Failover>
 
		<RollingFile name="RollingFile" fileName="${log-path}/logging.log"
			filePattern="${log-path}/$${date:yyyy-MM}/logging-%d{MM-dd-yyyy}-%i.log.gz">
			<PatternLayout
				pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%t] %c{1} - %msg%n" />
			<Policies>
				<TimeBasedTriggeringPolicy />
				<SizeBasedTriggeringPolicy size="20 MB" />
			</Policies>
			<DefaultRolloverStrategy max="100" />
		</RollingFile>

		<Console name="Console" target="SYSTEM_OUT" ignoreExceptions="false">
			<PatternLayout
				pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%t] %c{1} - %msg%n" />
		</Console>
		
		
	</Appenders>

	<Loggers>
	
		<Root level="INFO">
			<AppenderRef ref="Failover" />
			<AppenderRef ref="Console" />
		</Root>
		
	</Loggers>
	
	
</configuration>
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to