2016-04-13 3 views
0

Я создал простой проект Java. Я пытаюсь централизовать каротаж с помощью Logstash и RabbitMQ. Но сначала мне нужно централизовать мои журналы, используя RabbitMQ с AmqpAppender. Но это не работаетSpring AmqpAppender LOG4J не работает

Мои конфигурации:

  • POM зависимостей:

    <dependency> 
         <groupId>org.springframework.amqp</groupId> 
         <artifactId>spring-rabbit</artifactId> 
         <version>1.0.0.RELEASE</version> 
    </dependency> 
    
  • свойства Log4J.xml

    <appender name="amqp" class="org.springframework.amqp.rabbit.log4j.AmqpAppender"> 
        <param name="ExchangeName" value="amq.rabbitmq.log" /> 
        <param name="ExchangeType" value="topic" /> 
        <param name="RoutingKeyPattern" value="logstash" /> 
        <param name="ApplicationId" value="logstash" /> 
        <layout class="org.apache.log4j.PatternLayout"> 
         <param name="ConversionPattern" value="%d{ISO8601} %-5p %m%n" /> 
        </layout> 
    </appender> 
    
    <root> 
        <level value="INFO" /> 
        <appender-ref ref="amqp" /> 
        <appender-ref ref="default.file" /> 
    </root> 
    

Мой RabbitMQ конфигурации:

У меня есть Обмен: amq.rabbitmq.log с Binding в очереди: 'LOG' с маршрутизацией ключ: logstash

Но когда я попробуйте записать что-то, приложение AMQP не работает. My RollingFileAppender работает отлично с этой конфигурации:

<appender name="amqp" class="org.springframework.amqp.rabbit.log4j.AmqpAppender"> 
    <param name="ExchangeName" value="test.logs" /> 
    <param name="ExchangeType" value="topic" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{ISO8601} %-5p %m%n" /> 
    </layout> 
</appender> 

EDIT:

Некоторые изображения:

Обмен: test.logs

Я использую обмен 'test.logs'

Переустановка очереди: LOG queue

ответ

0

«НЕ РАБОТАЕТ» не очень помогает - попробовали ли вы включить отладочную запись для org.springframework.amqp?

Вы связали очередь с amq.rabbitmq.log?

Какой ключ маршрутизации?

BTW, этот обмен предназначен для внутреннего ведения журнала rabbitmq для извлечения, а не для регистрации пользователей. На самом деле, пользовательский интерфейс администратора даже не имеет диалога «опубликовать сообщение» на the exchange, поэтому я подозреваю, что вы не можете публиковать его из внешнего источника.

я просто обязана очередь к нему и увидеть сообщения, как:

accepting AMQP connection <0.7744.183> (127.0.0.1:65004 -> 127.0.0.1:5672) 

(т.е. брокерских бревна).

Создайте свой собственный обмен и привяжите к нему очередь.

+0

Я изменил обмен и очередь (проверьте ссылки/изображения). Все еще ничего не происходит –

+0

С 'test.logs' является обменом «тема», вам нужно связать с ключом маршрутизации ('#' для всех сообщений или 'logstash' из вашей конфигурации); или измените тип обмена на «разветвление», которому не нужен ключ маршрутизации. См. Учебники rabbitmq, чтобы понять типы обмена и потребности в маршрутизации. –