我想記錄或監控由Mule ESB處理的消息負載。我使用了以下記錄器。但它不記錄有效載荷。在Mule ESB中監控或記錄消息ESB
<logger message="#['Payload is:'+ payload]" level="DEBUG" />
我想記錄或監控由Mule ESB處理的消息負載。我使用了以下記錄器。但它不記錄有效載荷。在Mule ESB中監控或記錄消息ESB
<logger message="#['Payload is:'+ payload]" level="DEBUG" />
<logger level="DEBUG" doc:name="Logger" message="Payload is: #[message.payload]"/>
當你看到喜歡的東西:乙@ 19e3bdb你看到的是什麼的默認字符串表示反對你的消息有效載荷。
它顯然沒有實現toString方法,可以根據您的需要設置對象的格式供您閱讀。如果您將記錄器更改爲#[message],您將獲得整個mule msg,包括標題信息。其中應該是一個稱爲有效載荷的道具,它會告訴你有效載荷的類名/類型。
然後,您需要找到一些有關該類的文檔或信息,並決定如何以可讀的方式爲記錄器格式化部分。例如,如果您的類型具有字符串的「名稱」屬性,則可以執行#[message.payload.name]以查看日誌輸出中的名稱。
<logger message="payload is : #[payload]" level="INFO" doc:name="Logger"/>
也可用於
嗨,我用你的解決方案。現在它是這樣記錄的。有效載荷是:[B @ 19e3bdb。它不會記錄消息。我試圖登錄SOAP消息 – user3049576
請加滿你要求或騾子的配置爲我們提供更好的答案 –
@ user3049576也許你需要一個字節數組串變壓器。 –
試試這個
<logger message="Payload is #[message.payloadAs(java.lang.String)]" level="INFO" />
希望這有助於。
這是最好的方法,因爲它會使用有效載荷轉換成字符串騾子的自動轉化能力,不就叫'的toString()'就可以了。請注意,如果有效載荷是一個輸入流,將後左右爲佳序列化流,以'字節[]'或'String',然後記錄它,並保持與該序列類型處理它消耗。 –
嗨,我也用過你的解決方案。它也是這樣記錄的。有效載荷是:[B @ 19e3bdb。它不會記錄消息。我試圖記錄SOAP消息 – user3049576
編輯回答解釋Object toString行爲 – mmeyer