【发布时间】:2016-06-06 06:17:49
【问题描述】:
我的项目要求将日志发送到集中位置(Graylog)服务器。 所以我想在 logback.xml 中使用“AMQP Appender”将日志发送到 RabbitMq,然后配置 Graylog 服务器从 RabbitMq 获取日志。
这就是我的 logback.xml 的样子。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
{
"time": "%date{ISO8601}",
"thread": "%thread",
"level": "%level",
"class": "%logger{36}",
"message": "%message"
}
</pattern> </encoder>
</appender>
<appender name="RabbitMq" class="org.springframework.amqp.rabbit.logback.AmqpAppender">
<layout>
<pattern>
{
"time": "%date{ISO8601}",
"thread": "%thread",
"level": "%level",
"class": "%logger{36}",
"message": "%message"
}
</pattern>
</layout>
<host>localhost:8080</host>
<port>5672</port>
<username>guest</username>
<password>guest</password>
<exchangeType>direct</exchangeType>
<exchangeName>amq.direct</exchangeName>
<applicationId>RabbitMq-IT-SE</applicationId>
<routingKeyPattern>%property{applicationId}.%c.%p</routingKeyPattern>
<generateId>true</generateId>
<charset>UTF-8</charset>
<durable>true</durable>
<abbreviation>36</abbreviation>
<deliveryMode>NON_PERSISTENT</deliveryMode>
<declareExchange>true</declareExchange>
</appender>
<logger name="org.springframework.amqp.rabbit.logback" level="INFO" additivity="true">
<appender-ref ref="RabbitMq"/>
</logger>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="RabbitMq"/>
</root>
</configuration>
我可以在控制台中看到日志,我也希望它们在 RabbitMq 服务器上。 但不知何故,我无法在 RabbitMq 服务器上找到日志。 我可以看到在“概述”选项卡中建立的连接,但我不知道我必须在哪个队列中查找消息。 我错过了什么吗?
如果我错过了提供一些细节,请告诉我,我会尽快更新帖子。
谢谢。
【问题讨论】:
-
AMQP 交换就像电话交换一样,不接收数据而是路由数据。您需要创建一个队列并将该队列与您正在使用的交换相关联。在此队列中,您可以看到消息。 Graylog 服务器可以连接到该队列以接收消息。
标签: spring spring-boot rabbitmq amqp spring-amqp