如何在.net中实现跟踪

时间:2009-08-07 00:54:02

标签: c# .net vb.net tracing

我自己正在实施一种追踪机制。现在我想知道的是实现这种机制的最佳方式是什么(我的意思是架构)。首先,我想到创建一个这样的类:

class Tracer {
    public void NewEventRegistered(etc) {...} //this is the method I use to send this class the events I want to register

    event newEventRegistered(..) //this is the event the user is going to use to catch all the events in the application that have been sent to NewEventRegistered method.
}

但后来我看到有一个TraceListener类让我实现了Write和WriteLine方法。最大的缺点是这两种方法都只允许字符串作为参数,我希望能够发送比字符串更多的信息。我该怎么办?也许我的第一个意识形态是最好的?

编辑:我知道有很多像PostSharp这样的跟踪机制,所以,我只是为了学习目的而这样做!

1 个答案:

答案 0 :(得分:2)

接受字符串的Write和WriteLine函数仅表示必须覆盖的最小函数对。 TraceListener中还有其他写函数,您可以选择覆盖接受对象。

但是,TraceListener设计用于框架跟踪功能。因此,如果您不打算使用该类来“监听”跟踪框架中的输出,那么最好使用更适合您特定跟踪需求的接口。

也许继承System.IO.TextWriter对你的情况会更好。它有许多写入方法,但我相信它们通过Write和WriteLine路由所有输出,所以如果你只是覆盖这两个函数,你就可以免费获得很多。