Отказоустойчивое приложение не работает для log4j2 версии 2.7 - PullRequest
0 голосов
/ 26 апреля 2018

Моё весеннее загрузочное приложение использует 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]

Для исправления вышеуказанных ошибок я использовал отказоустойчивый appender, заданный log4j2, конфигурация которого приведена ниже:

<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 говорят, что это ошибка для тега Failover.

...