在阅读 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 将 使用严重性级别作为发布其日志到该交换 路由键 - 您将收到错误、警告和信息。根据你的情况 从前面的章节中了解到,您可以创建一个消费者 聆听这些日志并做出相应反应。
您必须启用它。创建
/etc/rabbitmq/rabbitmq.conf
文件并确保其中存在此行:
log.exchange = true
我刚刚在 rabbitmq.com
网站上查找了
source,但没有在任何地方看到该设置记录。如果您愿意,可以在该存储库中提交一个新问题,我会修复它,或者打开您自己的 PR 来执行此操作。
有点晚了,但希望对某人有所帮助。到目前为止它对我有用。交换“amq.rabbitmq.log”将由rabbitmq代理本身自动创建。我使用的 RabbitMQ 代理版本是:3.8.1
添加
log.exchange = true
进入您的 rabbitmq.conf 文件并重新启动您的rabbitmq 服务。
每次更新rabbitmq.conf文件后,您都需要重新启动rabbitmq服务。
打开cmd并在windows中输入以下内容: