实时访问RabbitMQ日志

问题描述 投票:0回答:2

在阅读 Manning 的《RabbitMQ in Action》一书时,我发现了一个有趣的主题。显然,可以将消费者设置为能够在消费者中实时接收所有 RabbitMQ 日志记录。

我读到 RabbitMQ 将日志发布到名为

topic
amq.rabbitmq.log
类型的交换。消费者可以收听特定的严重级别,例如可以通过将路由键设置为
error
warning
info
来过滤。

我的问题是;我在我的电脑上安装了默认的 RabbitMQ 服务器,但我找不到任何名为

amq.rabbitmq.log
的交换器。只有一个可能相关的是
amq.rabbitmq.trace
,但这个用于事件(例如queue.deleted、queue.created等事件),换句话说,这不是我要找的。

有人可以澄清我的问题吗?为什么

amq.rabbitmq.log
交换在干净的 RabbitMQ 服务器安装上不可用?

引用:

也许当您使用rabbitmqctl列出交易所时您发现 名为 amq.rabbitmq.log 的交换,其类型为主题。 RabbitMQ 将 使用严重性级别作为发布其日志到该交换 路由键 - 您将收到错误、警告和信息。根据你的情况 从前面的章节中了解到,您可以创建一个消费者 聆听这些日志并做出相应反应。

rabbitmq rabbitmq-exchange
2个回答
3
投票

您必须启用它。创建

/etc/rabbitmq/rabbitmq.conf
文件并确保其中存在此行:

log.exchange = true

我刚刚在 rabbitmq.com 网站上查找了

source
,但没有在任何地方看到该设置记录。如果您愿意,可以在该存储库中提交一个新问题,我会修复它,或者打开您自己的 PR 来执行此操作。


0
投票

有点晚了,但希望对某人有所帮助。到目前为止它对我有用。交换“amq.rabbitmq.log”将由rabbitmq代理本身自动创建。我使用的 RabbitMQ 代理版本是:3.8.1

添加

log.exchange = true

进入您的 rabbitmq.conf 文件并重新启动您的rabbitmq 服务。

每次更新rabbitmq.conf文件后,您都需要重新启动rabbitmq服务。

打开cmd并在windows中输入以下内容:

  1. rabbitmq-服务停止
  2. rabbitmq-服务安装
  3. rabbitmq-服务启动
  4. rabbitmqctl start_app
© www.soinside.com 2019 - 2024. All rights reserved.