11

我试图了解跟踪是如何工作的

我创建了一个简单的新 Web 项目。这是我可以使用的代码

// Create a trace listener for the event log.
EventLogTraceListener myTraceListener = new EventLogTraceListener("myEventLogSource");

// Add the event log trace listener to the collection.
Trace.Listeners.Add(myTraceListener);

// Write output to the event log.
Trace.WriteLine("Test output");

我正在从这个msdn 链接中获得帮助

我的 web.config 中的设置如下

 <system.diagnostics>
 <trace autoflush="false" indentsize="4">
  <listeners>
    <add name="myListener"
      type="System.Diagnostics.EventLogTraceListener"
      initializeData="TraceListenerLog" />
  </listeners>
 </trace>
</system.diagnostics>

但是,当我运行此代码时,我不知道此日志记录发生在哪里,我检查了事件查看器,在“应用程序和服务日志”下,我希望创建一些名为“myEventLogSource”的新日志,但没有发生。

请谁能解释我这是如何工作的。

4

1 回答 1

7

在应用程序日志下检查您是否有两个正在写入应用程序日志的源,一个是 TraceListenerLog,另一个是 myEventLogSource。不会创建新日志,它们都将使用应用程序日志。如果你想创建一个新的日志并且你想向它写入跟踪输出,你可以这样做(当然,日志名称不必等于源名称):

        string logSource = "_myEventLogSource";
        if (!EventLog.SourceExists(logSource))
            EventLog.CreateEventSource(logSource, logSource);

        EventLogTraceListener myTraceListener = new EventLogTraceListener(logSource);

        // Add the event log trace listener to the collection.
        System.Diagnostics.Trace.Listeners.Add(myTraceListener);

        // Write output to the event log.
        System.Diagnostics.Trace.WriteLine("Test output");

即使源不存在,跟踪信息也会写入应用程序日志下的事件日志,其中的源名称已传递给 EventLogTraceListener 构造函数。

于 2012-06-27T07:40:20.690 回答