2010-10-23 9 views
16

Ich möchte den folgenden Code mit einer Website verwenden. Welche config sections Ich sollte web.config hinzufügen, um die Ausgabe in eine Datei oder Windows-Ereignisprotokoll zu protokollieren?tracelistener zu web.config hinzufügen

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(); 
    } 
} 

Antwort

22

Sie sollten system.diagnostics Abschnitt verwenden. Hier Beispiel von MSDN für Textdatei:

<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> 

Das für Systemereignisse ist log: http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlogtracelistener.aspx

+3

Protokollierung Fenster Ereignis-Protokoll ist nicht gerade nach vorne mit asp.net, da sie Administratorrechte erforderlich sind. – Xaqron

+0

glauben Sie, dass Änderungen im Abschnitt web.config _listiners_ erforderlich sind, um die Anmeldung bei EventLog zu ermöglichen? – TarasB

+0

brauchen Sie nur diesen Code in der Web-Konfiguration oder benötigen Sie auch den folgenden Code? 'Erstellen Sie einen Ablaufverfolgungslistener für das Ereignisprotokoll. Dim myTraceListener als neuer EventLogTraceListener ("myEventLogSource") 'Fügen Sie der Sammlung den Ereignisprotokoll-Trace-Listener hinzu. Trace.Listeners.Add (myTraceListener) 'Schreiben Sie die Ausgabe in das Ereignisprotokoll. Trace.WriteLine ("Testausgabe") –