如何使用自定义跟踪侦听器记录.net中的痕迹
我遇到过这个链接http://www.codeproject.com/Articles/447238/Advanced-Tracing#_comments。 作者在创建一个记录到数据库的自定义侦听器方面做得相当不错。 在研究追踪/日志记录时,我阅读(从这里https://blogs.msdn.microsoft.com/bclteam/2005/09/20/a-tracing-primer-part-ii-b-mike-rousos/)跟踪源在需要跟踪侦听器时调用以下方法。
void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id)
void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id, string message)
void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id, string format, params object[] args)
void TraceData(TraceEventCache eventCache, String source, TraceEventType eventType, int id, object data)
void TraceData(TraceEventCache eventCache, String source, TraceEventType eventType, int id, params object[] data)
void TraceTransfer(TraceEventCache eventCache, String source, int id, string message, Guid relatedActivityId)
几乎所有这些方法(禁止1或2)都被覆盖(所有这些方法都是公共的,只要TraceTransfer调用WriteLine方法,因为msdn博客表示这些TraceEvent / Data / Transfer方法在内部调用Write / WriteLine方法)自定义跟踪侦听器的作者(在codeproject.com的第一个链接中)。 我想测试这个自定义侦听器来查看它的行为。 但在现实生活中,我不知道跟踪源如何调用TraceEvent(具有多重过载)和TraceTransfer()方法来跟踪自定义侦听器。 虽然我知道我可以创建一个跟踪源实例
TraceSource ts = new TraceSource("myApp");
ts.Listeners.Add(new DBTraceListener);
并添加自定义侦听器(如上面的代码),但问题仍然在于如何跟踪源调用跟踪通过自定义侦听器的TraceEvent / TraceTransfer方法(用DBTraceListener编写)。
换句话说,我不知道如何在我的应用程序中使用此自定义侦听器来记录痕迹。 任何帮助将不胜感激。
添加跟踪侦听器的简单方法是使用Trace.Listeners.Add()
。 例如,要添加一个TextWriterTraceListener
:
var listener = new TextWriterTraceListener("e:blah.txt");
Trace.Listeners.Add(listener);
Trace.AutoFlush = true;
Trace.WriteLine("Test!");
链接地址: http://www.djcxy.com/p/52397.html