当阅读曼宁的《 RabbitMQ in Action》一书时,我遇到了一个有趣的话题。显然,可以将使用者设置为能够在使用者中实时接收所有RabbitMQ日志。
我了解到RabbitMQ将日志记录发布到名为topic
的类型amq.rabbitmq.log
的交换中。消费者可以收听特定的严重级别,例如可以通过将路由密钥设置为error
,warning
或info
来对其进行过滤。
我的问题是;我在PC上安装了默认的RabbitMQ服务器,但找不到名为amq.rabbitmq.log
的任何交换。 amq.rabbitmq.trace
仅是可能相关的一个,但是该事件用于事件(例如queue.deleted,queue.created等事件),换句话说,这不是我想要的。
有人可以澄清我的问题吗?为什么amq.rabbitmq.log
交换在干净的RabbitMQ服务器安装上不可用?
引用:
也许当您使用发现的Rabbitmqctl列出交易所时 一个名为amq.rabbitmq.log的交换,其类型为主题。 RabbitMQ将 使用严重性级别将日志发布到该交易所 路由密钥-您将收到错误,警告和信息。根据你的 从前几章中学到的知识,您可以创建一个消费者来 听这些日志并做出相应的反应。
答案 0 :(得分:2)
您必须启用它。创建/etc/rabbitmq/rabbitmq.conf
文件,并确保其中包含以下行:
log.exchange = true
我只是为rabbitmq.com
网站添加了source,却看不到任何地方记录的设置。如果您愿意,可以在该存储库中提交一个新的问题,我会修复它,或者打开您自己的PR来这样做。
注意: RabbitMQ团队监视rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。
答案 1 :(得分:0)
为时已晚,但希望对您有所帮助。到目前为止,它对我有用。交换“ amq.rabbitmq.log”将由rabbitmq代理本身自动创建。我使用的RabbitMQ代理版本是:3.8.1
添加
log.exchange = true
进入您的 rabbitmq.conf 文件,然后重新启动Rabbitmq服务。
每次更新Rabbitmq.conf文件时,您都需要重新启动Rabbitmq服务。
打开cmd,然后在Windows中输入以下内容: