2010-07-19 11 views
8

Aşağıdaki kodu web.config dosyasına ekledim:İzleme çıktısını dosya sistemindeki bir dosyaya nasıl gönderilir?

<system.diagnostics> 
    <trace autoflush="false" indentsize="4" > 
     <listeners> 
     <add name="myListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="d:\debugging.txt" /> 
     <remove name="Default"></remove> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

Ve bu satırı iz çıktı göndermek için yazdım:

System.Diagnostics.Trace.Write(sID + " tracing id"); 

Ancak, herhangi bir "debugging.txt" göremiyorum "d: drive'da oluşturulan dosya ve iz çıkışı yok.

Bir şey mi eksik?

+0

Dosyalarda "autoflush =" true "' olması gerekir. – leppie

+0

Evet, autoflush = "true" yaptıktan sonra, hedef çıktı hedef dosyaya geliyor, ancak şu satırdan geliyor: HttpContext.Current.Trace.Write (sID + "izleme kimliği"); System.Diagnostics.Trace'den değil. Ve eğer System.Web configSection 'dan writeToDiagnosticsTrace = "true" özniteliğini kaldırırsam, HttpContext izlemesi de açık olan bir iş değildir. – teenup

+0

ASP.NET, bir sayfa için izleme etkinleştirildiğinde izleme iletileri görüntüler. (trace.axd TraceViewer). İz iletilerini bir ASP.NET Web sayfasına yönlendirmek için, bir 'WebPageTraceListener' nesnesini eklemelisiniz. ASP.NET ve System.Diagnostics izleme iletilerini bir ASP.NET sayfasının dışındaki bir bağlamda görüntülemek için, izleme iletilerini bir dosyaya yazmak için bir 'TextWriterTraceListener 'nesnesi kullanın. – Kiquenet

cevap

5

ASP.NET hizmetinin yazma izni olan bir dizine gitmeniz gerekir.

Yapmayı sevdiğim şey, varsayılan dinleyiciyi bırakıp bir dosyaya kaydetme veya oturum açma seçeneğine sahip olan TechNet DebugView'ı çalıştırmasıdır.

+0

Asp.Net makine hesabı için tam denetime sahip bir klasör yapılandırdım, şimdi dosya oluşturuldu, ancak boş ve herhangi bir iz çıktı içermiyor. Sayfamda Trace = "True" var ve tarayıcımda sayfamdaki izleme çıktısını görebiliyorum. – teenup

+0

Evet, autoflush = "true" yaptıktan sonra, hedef çıktı hedef dosyaya geliyor, ancak şu satırdan geliyor: HttpContext.Current.Trace.Write (sID + "izleme kimliği"); System.Diagnostics.Trace'den değil. Ve eğer System.Web configSection 'dan writeToDiagnosticsTrace = "true" özniteliğini kaldırırsam, HttpContext izlemesi de açık olan bir iş değildir. – teenup

+0

Yapınızdaki "TRACE" sembolünüz var, değil mi? –

İlgili konular