2

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

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

谢谢!

4

1 回答 1

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 种方法将为您提供实现侦听器所需的所有访问权限。

于 2009-02-02T15:34:13.360 回答