2013-02-15 22 views
10

Tôi có ứng dụng mà cấu hình nguồn dấu vết của nó như sau:Thay đổi cấp độ trace chuyển qua app.config

 var traceSource = new TraceSource("MyTraceSource"); 
     traceSource.Switch = new SourceSwitch("MyTraceSwitch") { **Level = SourceLevels.Information** }; 

     var traceListener = new TextWriterTraceListener(logFilePath); 
     traceListener.TraceOutputOptions = TraceOptions.DateTime; 

     traceSource.Listeners.Clear(); 
     traceSource.Listeners.Add(traceListener); 

     Trace.AutoFlush = true; 

Ứng dụng luôn luôn sử dụng này nguồn dấu vết để theo dõi sự kiện. Xin lưu ý rằng SourceLevels.Information được mã hóa cứng trong công tắc theo dõi. Bây giờ tôi cần phải thay đổi mức độ chuyển đổi theo dõi thành Verbose. Có thể thực hiện thông qua tệp app.config không? Tôi đã thử nhiều xml-config nhưng không thành công. Lưu ý tôi không thể thay đổi mã nguồn chỉ app.config.

Trả lời

6

Tôi không chắc chắn nếu bạn đang tìm kiếm một cái gì đó như thế này, nhưng tôi đã sử dụng một lần cấu hình xml sau để: change the trace switch level to Verbose. (App-Config)

<configuration> 
     <system.diagnostics> 
      <switches> 
      <add name="AppTraceLevel" value="4" /> //4 = Verbose 
      </switches> 
      // Here would be the Trace Tag with the Listeners (not important for your question) 
     </system.diagnostics> 
    </configuration> 

Có lẽ nó giúp

3

Vâng - Configuring Tracing xác định rõ:

<sources> 
     <source name="System.ServiceModel" 
       switchValue="Information, ActivityTracing" 
       propagateActivity="true"> 
     </source> 
    </sources> 

vết Cấp phần mô tả một số chi tiết.

2

Cả hai câu trả lời ở trên đều có giá trị. Đây là câu trả lời hoàn chỉnh. Thêm phần này vào cấu hình của bạn:

<system.diagnostics> 
<sources> 
    <source name="MyTraceSource" switchValue="Information"> 
    <listeners> 
     <add name="file" initializeData="c:\temp\logpath.txt" traceOutputOptions="DateTime" type="System.Diagnostics.TextWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

    </listeners> 
    </source> 
</sources> 
</system.diagnostics> 
+0

Bạn quên đề cập đến giá trị chuyển đổi trong ứng dụng được kiểm soát bởi thuộc tính 'switchValue =" Information "', ghi đè giá trị mặc định được chỉ định trong mã ứng dụng. Đặt nó thành 'Verbose' thay vì' Information' để làm những gì mà poster gốc hỏi. – Suncat2000

Các vấn đề liên quan