2011-03-14 98 views
1

我有一個WCF RESTful WS與日誌啓用使用MS企業庫5.0。日誌記錄工作正常,但是,我需要動態分配日誌消息收件人電子郵件地址,即由ws消費者身份設置,如果X調用我的ws,則必須將事件記錄到[email protected],如果y調用ws,則日誌轉至y @ y.com。我事先知道電子郵件地址。動態分配日誌消息收件人| MS企業庫5.0記錄器

我想爲每個消費者添加一個新的類別+日誌記錄目標偵聽器,並在運行時通過調用者身份將類別應用於LogEvent,但這會造成相當大的開銷。有沒有更好的方法來做到這一點? 我是新來的wcf和MSEL,所以也許我錯過了一些東西。

感謝

+0

我想你正在使用'EmailTraceListener'。正確? – 2011-03-14 10:21:21

+0

@Rest:是的,正確的。 EmailTraceListener被分配給webconfig中的類別;我在運行時將類別分配給logEvent。 – 2011-03-14 10:28:36

回答

2

最乾淨的方法是:

  1. 實現自定義跟蹤偵聽數據:只需從EmailTraceListenerData繼承。
  2. 實現自定義跟蹤偵聽器彙編程序:從EmailTraceListenerAssembler繼承並覆蓋Assemble方法。
  3. 實現自定義跟蹤偵聽器:從EmailTraceListener繼承並覆蓋TraceDataWrite方法。
  4. 設置爲typelistenerDataType類型以使用自定義跟蹤偵聽器和自定義跟蹤偵聽器數據。
+0

我有同樣的要求;我正在使用EL版本5.0;看起來像'EmailTraceListenerAssembler'類已經消失在5.0 :(任何替代品?謝謝! – Venkat 2011-12-07 17:56:51

3

終於得到了這個工作。您需要遵循這些步驟。休息永的建議略加修改的版本(如EmailTraceListenerAssembler找不到):

  • 子類EmailTraceListener並覆蓋一個或多個TraceDataWrite方法。
  • 子類EmailTraceListenerData並覆蓋GetCreationExpression()方法。在此方法的主體中,請確保使用在上一步中創建的子類。查看企業庫的源代碼。
  • 在.config文件中,將typelistenerDataType類型設置爲使用自定義跟蹤偵聽器和自定義跟蹤偵聽器數據。
相關問題