2011-03-14 103 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类型设置为使用自定义跟踪侦听器和自定义跟踪侦听器数据。
相关问题