【发布时间】:2021-07-15 11:52:56
【问题描述】:
我想在 Anypoint Studio 中以调试模式在发送之前记录出站请求事件(无论是 http、smb 还是 lambda)。那可能吗?如果是,怎么做?
【问题讨论】:
我想在 Anypoint Studio 中以调试模式在发送之前记录出站请求事件(无论是 http、smb 还是 lambda)。那可能吗?如果是,怎么做?
【问题讨论】:
对于 Mule HTTP 连接器和其他使用 Mule HTTP 服务的连接器,您可以通过在应用程序的 log4j2.xml 文件中或在运行时管理器中的日志记录选项卡。每个 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 提供了一些其他连接器的说明。
【讨论】:
在 log4j2.xml 中添加异步记录器声明可以帮助解决这种情况。 比如我用过
<Loggers>
...
<AsyncLogger name="org.mule.service.http.impl.service.HttpMessageLogger" level="DEBUG" />
...
</Loggers>
它帮助我实现了 Http 和 aws-lambda 连接器。
【讨论】: