Понимание того, как работает трассировка в C#

Я пытаюсь понять, как работает трассировка

Я создал простой новый веб-проект. Это мой код, который я могу использовать

// 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.конфигурация выглядит следующим образом

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

однако, когда я запускаю этот код, я не знаю, где происходит это ведение журнала, я проверяю средство просмотра событий в разделе "Журнал приложений и служб", я ожидал, что будет новый журнал создано с именем "myEventLogSource", но этого не произошло.

пожалуйста, кто-нибудь может объяснить мне, как это работает.

1 ответов


в журнале приложений проверьте, есть ли у вас два источника, которые записывались в журнал приложений, один-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.