我在阅读曼宁的《RabbitMQ in Action》一书时遇到了一个有趣的话题。显然,可以将消费者设置为能够在消费者中实时接收所有RabbitMQ日志记录。
我读到 RabbitMQ 将日志记录发布到名为amq.rabbitmq.log
的topic
类型交换。消费者可以侦听特定的严重性级别,例如,可以通过将路由密钥设置为error
、warning
或info
来过滤它。
我的问题是;我在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并在窗口中输入以下内容:
- 兔子服务站
- RabbitMQ-Service Install
- Rabbitmq-service start
- Rabbitmqctl start_app