我想了解跟踪是如何工作的
我创建了一个简单的新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 link
的帮助我的web.config中的设置如下
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener"
type="System.Diagnostics.EventLogTraceListener"
initializeData="TraceListenerLog" />
</listeners>
</trace>
</system.diagnostics>
然而,当我运行此代码时,我不知道这个日志记录发生在哪里我在“应用程序和服务日志”下检查了事件查看器&#34;我期待用名称&#34; myEventLogSource&#34;创建一些新的日志。但事情并没有发生。
任何人都可以解释一下这是如何运作的。
答案 0 :(得分:7)
在Application log下,检查是否有两个写入Application日志的Source,一个是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构造函数的源名称。