2013-12-14 37 views

回答

0
<logger level="DEBUG" doc:name="Logger" message="Payload is: #[message.payload]"/> 

当你看到喜欢的东西:乙@ 19e3bdb你看到的是什么的默认字符串表示反对你的消息有效载荷。

它显然没有实现toString方法,可以根据您的需要设置对象的格式供您阅读。如果您将记录器更改为#[message],您将获得整个mule msg,包括标题信息。其中应该是一个称为有效载荷的道具,它会告诉你有效载荷的类名/类型。

然后,您需要找到一些有关该类的文档或信息,并决定如何以可读的方式为记录器格式化部分。例如,如果您的类型具有字符串的“名称”属性,则可以执行#[message.payload.name]以查看日志输出中的名称。

+0

嗨,我也用过你的解决方案。它也是这样记录的。有效载荷是:[B @ 19e3bdb。它不会记录消息。我试图记录SOAP消息 – user3049576

+0

编辑回答解释Object toString行为 – mmeyer

0
<logger message="payload is : #[payload]" level="INFO" doc:name="Logger"/> 

也可用于

+0

嗨,我用你的解决方案。现在它是这样记录的。有效载荷是:[B @ 19e3bdb。它不会记录消息。我试图登录SOAP消息 – user3049576

+0

请加满你要求或骡子的配置为我们提供更好的答案 –

+1

@ user3049576也许你需要一个字节数组串变压器。 –

5

试试这个

<logger message="Payload is #[message.payloadAs(java.lang.String)]" level="INFO" /> 

希望这有助于。

+2

这是最好的方法,因为它会使用有效载荷转换成字符串骡子的自动转化能力,不就叫'的toString()'就可以了。请注意,如果有效载荷是一个输入流,将后左右为佳序列化流,以'字节[]'或'String',然后记录它,并保持与该序列类型处理它消耗。 –