приложение amqp и log4j2

Я пытаюсь использовать amqpappender из весеннего проекта amqp в нашем проекте См. Здесь:

http://docs.spring.io/spring-amqp/api/org/springframework/amqp/rabbit/log4j/AmqpAppender.html

Но в настоящее время мы используем log4j2, который, как мне кажется, не поддерживает приложение amqp.
Кто-нибудь знает, работает ли приложение amqp с log4j2?


person codeflinger    schedule 19.05.2015    source источник


Ответы (3)


Вы можете использовать Spring AMQP v.1.6.0.M1 (или hight) и конфигурация log4j2 xml.

Пример приложения:

<RabbitMQ name="rabbitmq"
      host="localhost" port="5672" user="guest" password="guest" virtualHost="/"
      exchange="log4j2Test" exchangeType="fanout" declareExchange="true" durable="true" autoDelete="false"
      applicationId="testAppId" routingKeyPattern="%X{applicationId}.%c.%p"
      contentType="text/plain" contentEncoding="UTF-8" generateId="true" deliveryMode="NON_PERSISTENT"
      charset="UTF-8"
      senderPoolSize="3" maxSenderRetries="5">
</RabbitMQ>
person Illiahat    schedule 17.02.2016
comment
Кажется, это правильное направление. Однако log4j2 жалуется, что RabbitMQ не распознает лиды? - person raam86; 20.03.2016
comment
Не могли бы вы мне помочь с этим? log4j2.xml и ошибка Я использую 1.6.0.M2, но все равно получаю ошибку: ERROR Appenders contains an invalid element or attribute "RabbitMQ" - person Sayan Malakshinov; 10.05.2016
comment
@ raam86 может быть вам поможет комментарий Бени Мурза - person Illiahat; 16.05.2016
comment
@ xt.and.r возможно, приложение RabbitMQ не было установлено. Пакет содержится не в основном репозитории. - person Illiahat; 16.05.2016

Как указал @Illiahat, вы должны использовать последнюю (еще не выпущенную) версию, например 1.6.0.M2. Текущая версия (1.5.5) не поддерживает log4j 2, поэтому вы получите сообщение RabbitMQ is not recognizable (он не может использовать класс AppenderSkeleton).

Вот пример конфигурации Gradle, которая заставит регистратор работать:

repositories {
    mavenCentral()
    maven {
        url 'https://repo.spring.io/libs-milestone'
    }
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.5'
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.5'
    compile 'org.springframework.amqp:spring-rabbit:1.6.0.M2'
}

Для регистратора вы можете использовать конфигурацию из @Illiahat.

person Beni Murza    schedule 25.04.2016
comment
К сожалению, у меня это не работает: конфигурации и журналы - person Sayan Malakshinov; 10.05.2016
comment
Интересно, что я вижу public class AmqpAppender extends AppenderSkeleton { в каталоге log4j, но log4j 2 содержит public class AmqpAppender extends AbstractAppender { - person Sayan Malakshinov; 10.05.2016
comment
@ xt.and.r Может быть, попробовать ‹AppenderRef ref = rabbitmq /› (именно так, как свойство name выглядит в вашем XML. - person Beni Murza; 10.05.2016

Если вы используете Log4j 2, вы сможете использовать JMS-провайдера AMQP.

Например, Apache Qpid JMS - это полный клиент AMQP 1.0 Java Message Service 1.1, созданный с использованием Qpid Proton.

Qpid также предоставляет альтернативный клиент JMS, поддерживающий более ранние версии AMQP.

См. https://qpid.apache.org/components/jms/.

person Gary Gregory    schedule 05.12.2016