你会如何构建一个HttpTraceListener?

时间:2009-02-02 14:11:10

标签: c# .net-3.5 trace

我的应用程序使用Trace对象来记录信息。使用TextWriterTraceListener将信息捕获到一个文件中,它可以很好地工作。但是,我想添加另一个TraceListerner,它将信息记录到Web服务。换句话说,我需要一个HttpTraceListener。此外,我需要一些智能,我不希望看到每个日志条目的HTTP请求。

你会如何构建这样的东西?我知道我必须继承TraceListener(文档有点神秘......)但是是否有人知道HttpTraceListener是否已经存在?我不想重新发明轮子......

谢谢!

1 个答案:

答案 0 :(得分:1)

由于您对变量记录的要求,即没有为每个条目发出请求,您肯定需要创建自己的监听器。

TraceListener上的每个MSDN文档(http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelistener(VS.80).aspx

“继承此类以实现Debug和Trace类的自定义侦听器。至少,您必须实现Write和WriteLine方法。此外,您还可以实现Fail,Close和Flush方法。”

我会从:

开始
  1. 继承自TraceListener。
  2. 实施Write / WriteLine方法
  3. 在Write中添加逻辑以将请求提交给Web服务。如果使用基类实现,WriteLine只会附加行终止符。
  4. 根据您的应用需要覆盖失败/关闭/刷新。
  5. 这5种方法将为您提供实现监听器所需的所有访问权限。