2010-10-23 12 views
16

Voglio usare sotto il codice con un sito web. Quale config sections dovrei aggiungere a web.config per registrare l'output in un file o in un evento di windows?Aggiunta tracelistener a 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(); 
    } 
} 

risposta

22

È necessario utilizzare la sezione system.diagnostics. Ecco ad esempio da MSDN per il file di testo:

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

Questo è per gli eventi di sistema di registro: http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlogtracelistener.aspx

+3

registrazione di eventi Windows-log non è semplice con asp.net dal momento che richiede privilegi amministrativi. – Xaqron

+0

pensi che siano necessarie modifiche nella sezione _listiners_ web.config per consentire la registrazione in EventLog? – TarasB

+0

hai solo bisogno di questo codice sulla configurazione web o hai anche bisogno del seguente codice? 'Creare un listener di traccia per il registro eventi. Dim myTraceListener As New EventLogTraceListener ("myEventLogSource") 'Aggiungi il listener della traccia del registro eventi alla raccolta. Trace.Listeners.Add (myTraceListener) 'Scrivi l'output nel registro eventi. Trace.WriteLine ("Test output") –