2010-10-23 12 views
16

Aşağıdaki kodu bir web sitesiyle kullanmak istiyorum. Hangi web.config'a çıktıyı bir dosya veya pencere olay günlüğüne kaydetmek için eklemeliyim?web.config dosyasına tracelistener ekleniyor

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

cevap

22

Sen system.diagnostics bölümünü kullanmalısınız. Sistem olayları için budur

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

log: o yönetici ayrıcalıkları gerekiyor beri http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlogtracelistener.aspx

+3

Günlüğü pencerelerine olay günlüğü asp.net ile yalındır değil İşte MSDN'den metin dosyası için bir örnek. – Xaqron

+0

web.config _listiners_ bölümündeki herhangi bir değişikliğin EventLog'a giriş yapmak için gerekli olduğunu düşünüyor musunuz? – TarasB

+0

Sadece bu kodu web yapısında mı kullanıyorsunuz yoksa aşağıdaki koda ihtiyacınız var mı? 'Etkinlik günlüğü için bir izleme dinleyicisi oluşturun. Dim myTraceListener Yeni Olay OlarakLogTraceListener ("myEventLogSource") 'Olay günlüğü izleme dinleyicisini koleksiyona ekleyin. Trace.Listeners.Add (myTraceListener) 'Çıktıyı olay günlüğüne yaz. Trace.WriteLine ("Test çıkışı") –