Mqtt MOSQUITO:日志消息内容

Mqtt MOSQUITO:日志消息内容,mqtt,mosquitto,Mqtt,Mosquitto,我使用mosquitto作为MQTT代理,虽然它提供了广泛的日志记录功能,但我不知道如何将实际主题的消息记录到一个文件(甚至是按主题排序的文件树,甚至数据库)。我看到了log_desc topic选项,但它要么没有达到我期望的效果,要么不起作用(可能是第一个) 我知道我可以从另一个进程订阅同一台机器上的一个(或所有)主题并将其导入文件,我知道有一种解决方案可以使用python将客户机再次获取的数据写入数据库,但我想知道代理本身是否可以将它传递到某处的数据写入,而不仅仅是元数据 最后,我可能需要将

我使用mosquitto作为MQTT代理,虽然它提供了广泛的日志记录功能,但我不知道如何将实际主题的消息记录到一个文件(甚至是按主题排序的文件树,甚至数据库)。我看到了
log_desc topic
选项,但它要么没有达到我期望的效果,要么不起作用(可能是第一个)

我知道我可以从另一个进程订阅同一台机器上的一个(或所有)主题并将其导入文件,我知道有一种解决方案可以使用python将客户机再次获取的数据写入数据库,但我想知道代理本身是否可以将它传递到某处的数据写入,而不仅仅是元数据


最后,我可能需要将数据写入DB,但现在可以将数据写入文件树,甚至只是一个大日志文件。代理服务可以做到这一点吗?

不,mosquitto代理不会自己记录所有消息内容

你能得到的最接近的东西是这样的:

1569256583: Received PUBLISH from mosq/F7RrCcwvgdVzEVpHi3 (d0, q0, r0, m0, 'test', ... (3 bytes))
这包括消息的主题和大小,但不包括消息本身

重要的是要记住,消息内容不一定是文本,它可以是任何字节


log\u dest
标志正好是写入日志输出的位置,您可以使用
log\u type
条目设置日志记录的级别。

因此,这里的最佳做法是订阅另一个进程并记录该数据?因为对我来说,这似乎是一个次优的解决方案,因为很难保证订阅的进程真正获得所有信息……对于Mosquito,您唯一的选择是一个单独的客户端,如果它以QOS 2订阅,那么您可以确信它将获得所有消息。其他代理提供其他选项,例如HiveMQ具有直接日志记录功能,或者Mosca允许您编写自己的日志