定义多个未运行的TraceSource

我是TraceSource的新手,所以我正在调查它是如何使用/不能使用的(基本上是优点和缺点)。

我喜欢的是我可以从.NET框架本身获取转储,所以我做了一个小应用程序来测试它并一起使用我自己的自定义源(因为这是我期望它被使用的方式),像这样:

class Program { static void Main(string[] args) { SmtpClient smtp = new SmtpClient(); var mm = new MailMessage(); mm.To.Add("me@my-site.com"); mm.Subject = "Trace Testing"; smtp.Send(mm); var ts = new TraceSource("MyCustomTracer"); ts.TraceEvent(TraceEventType.Error, 0, "This is an error"); ts.TraceEvent(TraceEventType.Information, 0, "Just debugging now"); } } 

我已经在App.config添加了一些监听器,如下所示:

                

但由于某些原因,当我运行应用程序时,我通过MyCustomTracer记录的2个事件不会进入日志文件,除非我注释掉SmtpClient东西(即 – 只使用我的自定义跟踪器)。

我原以为可以按照我试图使用它们的方式使用多个TraceSource,我只是不确定出了什么问题。

发现问题,一个完整的noob错误,我的TraceSource项目都有一个正在写入同一文件的Listener。 虽然我不确定错误,但在写作时会发生某种冲突。

如果要使用同一个侦听器拥有多个源,则需要使用如下所示: