【发布时间】:2013-12-14 19:47:46
【问题描述】:
我想记录或监控 Mule ESB 处理的消息负载。我使用了以下记录器。但它不会记录有效负载。
<logger message="#['Payload is:'+ payload]" level="DEBUG" />
【问题讨论】:
我想记录或监控 Mule ESB 处理的消息负载。我使用了以下记录器。但它不会记录有效负载。
<logger message="#['Payload is:'+ payload]" level="DEBUG" />
【问题讨论】:
试试这个
<logger message="Payload is #[message.payloadAs(java.lang.String)]" level="INFO" />
希望这会有所帮助。
【讨论】:
toString()。请注意,如果有效负载是输入流,则在此之后将被消耗,因此最好将流序列化为byte[] 或String,然后记录它并继续使用序列化类型处理它。
<logger message="payload is : #[payload]" level="INFO" doc:name="Logger"/>
也可以使用
【讨论】:
<logger level="DEBUG" doc:name="Logger" message="Payload is: #[message.payload]"/>
当您看到如下内容时:B@19e3bdb 您看到的是消息负载是任何对象的默认字符串表示形式。
它显然没有实现一个 toString 方法来格式化对象以供您按预期阅读。如果您将记录器更改为仅#[message],您将获得整个 mule msg,包括标题信息。其中应该有一个名为 payload 的道具,它会告诉你有效载荷的类名/类型。
然后,您需要找到有关该类的一些文档或信息,并决定如何以一种可读的方式为您的记录器格式化其中的一部分。例如,如果您的类型有一个“名称”属性,它是一个字符串,您可以执行 #[message.payload.name] 来查看日志输出中的名称。
【讨论】: