2010-10-23 11 views
16

Chcę użyć poniższego kodu ze stroną internetową. Którego config sections powinienem dodać do web.config, aby zapisać dane wyjściowe w dzienniku zdarzeń pliku lub okna?Dodawanie tracelistener do web.config

using System.Diagnostics; 

// Singleton in real code 
Class Logger 
{ 
    // In constructor: Trace.AutoFlush = false; 

    public void Log(message) 
    { 
     String formattedLog = formatLog(message); 
     Trace.TraceInformation(formattedLog); 
     Trace.Flush(); 
    } 
} 

Odpowiedz

22

Powinieneś użyć sekcji system.diagnostics. Oto przykład z MSDN do pliku tekstowego:

<configuration> 
    <system.diagnostics> 
    <trace autoflush="false" indentsize="4"> 
     <listeners> 
     <add name="myListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="TextWriterOutput.log" /> 
     <remove name="Default" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 

To jest dla dziennika zdarzeń systemowych: http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlogtracelistener.aspx

+3

Logowanie do systemu Windows event-log nie jest proste z ASP.NET, ponieważ wymaga uprawnień administratora. – Xaqron

+0

Czy uważasz, że jakiekolwiek zmiany w sekcji web.config _listiners_ są wymagane, aby umożliwić logowanie do EventLog? – TarasB

+0

potrzebujesz tylko tego kodu w konfiguracji sieci, czy też potrzebujesz następującego kodu? 'Utwórz detektor śledzenia dla dziennika zdarzeń. Dim myTraceListener jako nowy EventLogTraceListener ("myEventLogSource") 'Dodaj detektor śledzenia dziennika zdarzeń do kolekcji. Trace.Listeners.Add (myTraceListener) "Zapisz wyniki w dzienniku zdarzeń. Trace.WriteLine ("Wynik testu") –