2010-09-29 7 views
5

.NET izlemeyi kurmaya çalışıyorum. Ben System.Diagnostics.Trace üzerinden çalışmak için temel izleme elde edebilmek, ancak karmaşık nedenlerden dolayı System.Diagnostics.TraceSource nesneleri (.NET 2.0 beri yeni bir yol) ile izleme etkinleştirmek zorundayım yerine Sistem kullanmak .Diagnostics.Trace. Her şeyi denedim ama sadece TraceSource kullanarak çalışmak istemiyor. Şu.NET izleme yalnızca Diagnostics.TraceSource ile çalışmaz. Diagnostics.Trace

http://msdn.microsoft.com/en-us/library/ty48b824.aspx
http://msdn.microsoft.com/en-us/library/64yxa344.aspx
http://msdn.microsoft.com/en-us/library/sk36c28t.aspx
http://blogs.msdn.com/b/bclteam/archive/2005/03/15/396431.aspx
http://msdn.microsoft.com/en-us/library/b0ectfxd%28v=VS.100%29.aspx

: I (aspx.cs) İşte

bazı ilgili URL'ler bir ASP.NET kod arkasında izleme yapıyorum , web.config dosyasında bulunanlara dayanarak, bu koddan hem bir dosyaya hem de sayfaya şu şekilde bakmalıdır:

TraceSource ts = new TraceSource("mysource", SourceLevels.All); 
Trace.Write("Trace (old way)"); // this one works 
ts.TraceInformation("Trace (new way)"); // this one doesn't work 
ts.Flush(); 
ts.Close(); 

İşte alakalı web.config bölümleri var:

<system.diagnostics> 
     <trace autoflush="false"> 
      <listeners> <!-- these listeners activate the "old way" of tracing. --> 
       <add  name="pagelistener" /> 
       <add  name="filelistener" /> 
      </listeners> 
     </trace> 

     <sources> 
      <source name="mysource" switchName="myswitch"> 
       <listeners> <!-- these listeners activate the "new way" --> 
         <add name="pagelistener" /> 
         <add name="filelistener" /> 
       </listeners> 
      </source> 
     </sources> 


     <sharedListeners> 
      <!-- these are the actual trace listeners --> 
      <add 
        name="filelistener" 
       type="System.Diagnostics.TextWriterTraceListener" 
       initializeData="loplog.txt" 
       /> 
      <add 
       name="pagelistener" 
       traceOutputOptions="none" 
       type="System.Web.WebPageTraceListener, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
       /> 
     </sharedListeners> 

     <switches> 
      <!-- the sources above use this verbose switch --> 
      <add name="myswitch" value="Verbose"/> 
     </switches> 

</system.diagnostics> 
<system.codedom> 
     <!-- this compilers section should not be needed because I added 
       #define TRACE to the .aspx.cs file, however I put this in 
       since it's still not working. --> 

     <compilers> 
      <compiler 
          language="c#;cs;csharp" 
          extension=".cs" 
          compilerOptions="/d:TRACE" 
          type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          warningLevel="1" 
          /> 
     </compilers> 
</system.codedom> 

<system.web> 
     <!-- this trace tag should be redundant because I added trace="true" to the aspx file, 
       but I put it in here anyway because this wasn't working. --> 
     <trace writeToDiagnosticsTrace="true" enabled="true" pageOutput="true" requestLimit="50" localOnly="true"/> 

cevap

5

değişiklik switchValue="Verbose" için switchName="mySwitch". Bu daha sonra tracesource ile TÜM izler çıkarır. İzlemenin ayrıntılarını artırmak/azaltmak için switchLevel'u değiştirebilirsiniz. Örneğinizde bir bilgi mesajını takip ettiniz, önemli, bilgi, uyarı, hata, kritik. Anahtarı uyarıya ayarlayın ve herhangi bir ayrıntılı bilgi veya bilgi mesajı alamazsınız.

+0

Şu anda aynı sorunu yaşıyorum. Bunun benim için bir etkisi yok gibi görünüyor. – Josh

İlgili konular