Я изучаю, как правильно использовать System.Diagnostics
tracing functionality, но не могу заставить мой код работать. Я уже прочитал официальные документы о configuring tracing, creating and initializing trace listeners, source Элемент app.config и некоторые связанные записи stackoverflow. Документ о TraceSource MSDN меня действительно путают ...Функция нативного отслеживания не производит вывод
Мой app.config
содержит следующий раздел:
<system.diagnostics>
<sources>
<source name="ApplicationTraceSource" switchName="ApplicationTraceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="EventLogListener" type="System.Diagnostics.EventLogTraceListener" initializeData="PDS" />
<add name="TextLogListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="PDS.log" />
<add name="ConsoleLogListener" type="System.Diagnostics.ConsoleTraceListener" />
<remove name="Default" />
</listeners>
</source>
<source name="DatabaseActivitySource" switchName="DatabaseActivityTraceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="QueryTextLogListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="Queries.log" />
<remove name="Default" />
</listeners>
</source>
</sources>
<switches>
<!--Set value to 0 to turn of database activity log.-->
<add name="DatabaseActivityTraceSwitch" value="1" />
<!--Set value to 0 to turn of application log. 1 for errors. 2 for errors und warnings. 3 for more detailed error information. 4 for verbose trace information.-->
<add name="ApplicationTraceSwitch" value="4" />
</switches>
</system.diagnostics>
Мой код в моем Program.cs
так просто, как это может получает:
if (EventLog.SourceExists("PDS") == false)
{
EventLog.CreateEventSource("PDS", "EventLogListener");
}
TraceSource applicationTraceSource = new TraceSource("ApplicationTraceSource");
applicationTraceSource.TraceInformation("i am information");
applicationTraceSource.TraceEvent(TraceEventType.Error, 1, "i am error event");
applicationTraceSource.TraceEvent(TraceEventType.Warning, 2, "i am warning event");
applicationTraceSource.TraceEvent(TraceEventType.Information, 3, "i am information event");
applicationTraceSource.TraceEvent(TraceEventType.Verbose, 4, " am verbose event");
applicationTraceSource.TraceData(TraceEventType.Error, 5, "i am error data");
applicationTraceSource.TraceData(TraceEventType.Warning, 6, "i am warning data");
applicationTraceSource.TraceData(TraceEventType.Information, 7, "i am information data");
applicationTraceSource.TraceData(TraceEventType.Verbose, 8, " am verbose data");
applicationTraceSource.Flush();
Файл PDS.log создается, но он пуст. Журнал событий пуст. Консольный выход пуст.
Может ли кто-нибудь дать мне подсказку?