我的spring boot应用程序使用 Kafka
作为日志的附加程序,使用 log4j2.
其特性如下:
<Kafka name="kafkaAppender" topic="logs" ignoreExceptions="false" >
<PatternLayout pattern="%m%n" />
<Property name="bootstrap.servers">127.0.0.1:9092</Property>
</Kafka>
<Async name="Async" ignoreExceptions="false" >
<AppenderRef ref="kafkaAppender"/>
</Async>
我得到的错误是:
kafka-producer-network-thread | producer-2] 2018-04-26 17:12:22,590 WARN org.apache.kafka.common.network.Selector [276] - Error in I/O with /127.0.0.1
java.net.ConnectException: Connection refused: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:1.8.0_144]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[?:1.8.0_144]
at org.apache.kafka.common.network.Selector.poll(Selector.java:238) [kafka-clients-0.8.2.0.jar:?]
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192) [kafka-clients-0.8.2.0.jar:?]
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191) [kafka-clients-0.8.2.0.jar:?]
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122) [kafka-clients-0.8.2.0.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
为了修复上述错误,我使用了log4j2提供的failover appender,其配置如下:
<Failover name="Failover" primary="Async" ignoreExceptions="true" >
<Failovers>
<AppenderRef ref="RollingRandomAccessFile"/>
</Failovers>
</Failover>
应用程序仍然会连续打印上述错误,并显示以下内容,而不是转到故障转移中给定的追加器:
2018-04-26 17:05:37,196 restartedMain ERROR appender Failover has no parameter that matches element Failovers
有什么办法可以解决这个问题吗 log4j2
论坛说这是故障转移标签的一个bug。
1条答案
按热度按时间sd2nnvve1#
截至2019年8月,log4j2中有一个open bug,它导致了这个问题!
请在这里找到链接