簡體   English   中英

在WSO2 ESB中記錄順序調用

[英]Logging sequence calls in WSO2 ESB

我有一個執行許多不同調用的序列模板。 每個調用都會記錄一些參數/信息。

我想要實現的是在序列執行期間將某種標識符(例如,唯一的ID)傳遞給所有調用。

目的是從日志中跟蹤單個執行的所有步驟,主要是為了調試。

實際上,我想到的唯一想法就是以編程方式進行操作,也就是說,在序列的開頭創建一個uid,將其傳遞給它,然后將其保存在log調用中。 我還嘗試弄亂LogMediator,以使其從外部參數中自動提取信息,但是失敗了(也許我做錯了)。

有沒有更聰明的方法可以做到這一點?

您的要求可以通過多種方式實現。 我要提到的是其中一種可能性。

由於這是您將用於調試的另一種方法,因此我認為最好為此使用一個單獨的日志文件。 因此,首先創建一個新的文件追加器,類似於下面給出的。

log4j.logger.com.test.CustomDebug=DEBUG, CUSTOM_DEBUG
log4j.additivity.com.test.CustomDebug=false

log4j.appender.CUSTOM_DEBUG = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CUSTOM_DEBUG.File = /home/upul/log/moredebug.log
log4j.appender.CUSTOM_DEBUG.layout = org.apache.log4j.PatternLayout
log4j.appender.CUSTOM_DEBUG.Append = true

接下來,創建一個名為CustomDebug的自定義介體。 mediate()方法內部,從MessageContext讀取參數。 接下來,進行一些處理(如果有的話),最后,使用log.debug()編寫日志消息。 該調試消息將被寫入您在上面創建的新文件中(本例中為/home/upul/log/moredebug.log )。

public class CustomDebug extends AbstractMediator {

    private static final Log log = LogFactory.getLog(CustomDebug.class);

    public boolean mediate(MessageContext mc) {

    }
}

接下來,將CustomDebug類介體插入序列模板的適當位置,並將uid作為參數傳遞。

如前所述,這是可用於創建自定義日志記錄的方法之一。 您可能還需要考慮其他可能性。

如果您需要有關此問題的進一步幫助,請告訴我。

謝謝,

Upul

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM