实时访问 RabbitMQ 日志



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

我读到 RabbitMQ 将日志记录发布到名为amq.rabbitmq.logtopic类型交换。消费者可以侦听特定的严重性级别,例如,可以通过将路由密钥设置为errorwarninginfo来过滤它。

我的问题是;我在PC上安装了默认的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网站的源代码,并没有在任何地方看到该设置记录。如果您愿意,请在该存储库中提交一个新问题,我会修复它,或者打开您自己的 PR 来执行此操作。


注意:RabbitMQ 团队监控rabbitmq-users邮件列表,并且只偶尔回答 StackOverflow 上的问题。

有点晚了,但希望它能帮助到某人。到目前为止,它对我有用。交易所"amq.rabbitmq.log"将由rabbitmq经纪人自己自动创建。我正在使用的 RabbitMQ 代理版本是:3.8.1

log.exchange = true

放入您的rabbitmq.conf文件中,然后重新启动您的 RabbitMQ 服务。

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

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

  1. 兔子服务站
  2. RabbitMQ-Service Install
  3. Rabbitmq-service start
  4. Rabbitmqctl start_app

最新更新