以真实的时间记录RabbitMQ日志

vlf7wbxs  于 2023-10-20  发布在  RabbitMQ
关注(0)|答案(2)|浏览(161)

我在阅读曼宁的《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的交易所,它的类型是topic。RabbitMQ将使用严重级别作为路由键将其日志发布到该交换-您将获得错误,警告和信息。根据您在前几章中学到的知识,您可以创建一个消费者来监听这些日志并做出相应的React。

ie3xauqp

ie3xauqp1#

您必须启用它。创建/etc/rabbitmq/rabbitmq.conf文件并确保其中存在以下行:

log.exchange = true

我刚刚为rabbitmq.com网站grepped了source,在任何地方都没有看到该设置的文档。如果你愿意,在那个仓库中提交一个新的问题,我会修复它,或者打开你自己的PR来这样做。

lc8prwob

lc8prwob2#

虽然有点晚,但希望能帮上忙。到目前为止,它为我工作。交易所“amq.rabbitmq.log”将由rabbitmq经纪人自己自动创建。我使用的RabbitMQ代理版本是:3.8.1
添加
log.exchange = true
添加到rabbitmq.conf文件中,然后重新启动rabbitmq服务。
每次更新rabbitmq.conf文件时,都需要重新启动rabbitmq服务。
打开cmd并在windows中输入以下内容:

  1. rabbitmq服务停止
  2. rabbitmq-service install
  3. rabbitmq-service start
  4. rabbitmqctl start_app

相关问题