Ich habe ein einfaches Java Projekt erstellt. Ich versuche, die Protokollierung mit Logstash und RabbitMQ zu zentralisieren. Aber zuerst muss ich meine Protokolle mit RabbitMQ mit AmqpAppender zentralisieren. Aber es funktioniert nichtSpring AmqpAppender LOG4J funktioniert nicht
Meine Konfigurationen:
Pom Abhängigkeiten:
<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.0.0.RELEASE</version> </dependency>
log4j.xml Eigenschaften
<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>
Meine rabbitmq config:
Ich habe eine Austausch: amq.rabbitmq.log mit einem in eine Warteschlange Bindung: 'LOG' mit Schlüssel Routing: logstash
Aber als ich Versuchen Sie, etwas einzuloggen, der AMQP Appender funktioniert nicht. Mein RollingFileAppender arbeitet mit dieser Config fein:
<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:
Einige Bilder:
Austausch: test.logs
Ich bin mit dem 'test.logs' Austausch
Warteschlangenbindung: LOG queue
Ich habe den Austausch und die Warteschlange geändert (siehe Links/Bilder). Immer noch passiert nichts –
seit 'test.logs 'ist ein 'topic'-Austausch, Sie müssen mit einem Routing-Schlüssel binden (' # 'für alle Nachrichten oder' logstash' von Ihrer Konfiguration); oder ändern Sie den Exchange-Typ zu 'Fanout', der keinen Routing-Schlüssel benötigt. In den Rabbitmq-Tutorials finden Sie Informationen zu den Exchange-Typen und den Routing-Schlüsselanforderungen. –