You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Prosody IM以完整记录收发的详细XMPP消息

解决方案

你当前Prosody默认debug日志仅输出XMPP节的根标签属性,默认会省略内部子元素,可通过以下方式配置输出完整XMPP消息:

方案一:使用官方社区模块mod_log_all_stanzas(推荐)

这是最轻量化的非侵入式方案:

  • 第一步:下载mod_log_all_stanzas模块,放入Prosody的自定义模块目录(默认通常为/usr/lib/prosody/modules-community或你自行配置的plugin_paths指向的目录)
  • 第二步:修改Prosody主配置文件,在全局配置或你对应的MUC组件配置块中添加模块加载声明:
modules_enabled = {
    -- 保留你原有已加载的其他模块,新增以下行
    "log_all_stanzas";
}
-- 可选配置:仅打印指定MUC域名的消息,避免日志量过大,将下方域名替换为你实际的MUC服务域名
log_all_stanzas_filter = function (stanza)
    return stanza.attr.to and stanza.attr.to:match("conference%.example%.com$")
end
  • 第三步:重启Prosody服务,此时debug日志中会输出完整的XMPP节内容,包含所有子元素、命名空间等信息。

方案二:修改核心日志逻辑(不推荐)

如果你不想额外安装模块,可直接修改Prosody核心代码的打印逻辑:
找到Prosody安装目录下的core/stanza.lua文件,修改其中的stanza转字符串方法,移除默认的长内容截断规则即可,该方案会在Prosody版本升级后失效,仅建议临时调试使用。

注意:开启全量XMPP节日志会大幅提升日志写入量,生产环境调试务必添加过滤规则,避免占用过多磁盘空间。


内容的提问来源于stack exchange,提问作者hcnak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:48:03