在 Mule 4 中调试期间记录请求事件

Log request event during debug in Mule 4

我想在 Anypoint Studio 的调试模式下,在发送之前记录出站请求事件(无论是到 http、smb 还是 lambda)。那可能吗?如果是,怎么做?

在 log4j2.xml 中添加异步记录器声明可以帮助解决这种情况。 比如我用了

<Loggers>
    ...
    <AsyncLogger name="org.mule.service.http.impl.service.HttpMessageLogger" level="DEBUG" />
    ...
</Loggers>

它对我的 Http 和 aws-lambda 连接器有帮助。

对于 Mule HTTP 连接器和其他使用 Mule HTTP 服务的连接器,您可以通过在应用程序的 log4j2.xml 文件中配置 log4j2 记录器来启用您在回答中提到的 HTTP 有线日志记录,或在运行时管理器的日志选项卡中。每个 Mule 版本都有一个特定的记录器。请查看知识库文章 How to Enable HTTP Wire Logging 了解详细说明。

专门针对 Mule 4.x 应用程序:

<Loggers>
    ...
    <AsyncLogger name="org.mule.service.http.impl.service.HttpMessageLogger" level="DEBUG" />
    ...
</Loggers>

对于其他连接器,您需要查看所述连接器的文档。我不确定您是否真的打算调试每个连接器的协议(例如 SMB 请求),或者只是想看看连接器是否在做任何事情。如果是前者,大多数连接器不提供与 HTTP 连接器相同级别的协议详细信息。您可能会发现进行流量捕获并为此使用像 Wireshark 这样的数据包分析器更有用。对于后者,这将取决于每个连接器可以使用记录器打印的内容。此 KB article 提供了一些其他连接器的说明。