故障转移附加程序不适用于log4j2版本2.7

3phpmpom  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(401)

我的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。

sd2nnvve

sd2nnvve1#

截至2019年8月,log4j2中有一个open bug,它导致了这个问题!
请在这里找到链接

相关问题