2013-12-14 36 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',然後記錄它,並保持與該序列類型處理它消耗。 –