我有app配置其跟踪源,如下所示:
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;
应用程序始终使用此跟踪源来跟踪事件。 请注意,SourceLevels.Information在跟踪开关中是硬编码的。 现在我需要将跟踪开关级别更改为Verbose。是否可以通过app.config文件完成?我尝试了很多xml-configs但是失败了。注意我无法仅更改源代码app.config。
答案 0 :(得分:7)
我不确定您是否正在搜索此类内容,但我已将以下xml配置用于: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>
也许有帮助
答案 1 :(得分:3)
嗯 - Configuring Tracing明确指出:
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
</source>
</sources>
跟踪级别部分介绍了一些细节。
答案 2 :(得分:2)
上述两个答案都有价值。这是完整的回复。将此部分添加到您的配置中:
<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>
答案 3 :(得分:0)
在原始问题(vkrzv的帖子)中,听众被删除是一个问题:
traceSource.Listeners.Clear();
导致监听器添加到app.config中的原因(在Glenn Ferries中,这是一个很好的解决方案。我非常喜欢。谢谢。)。
因此,完整的解决方案之一就在这里。您将在c:\ temp文件夹中拥有2个日志文件:logcode.txt和logappconfig.txt
代码:
var traceSource = new TraceSource("MyTraceSource");
var traceListener = new TextWriterTraceListener(@"c:\temp\logcode.txt");
traceListener.TraceOutputOptions = TraceOptions.DateTime;
//traceSource.Listeners.Clear(); //we do not want to delete the listener
traceSource.Listeners.Add(traceListener);
Trace.AutoFlush = true;
App.Config:
<system.diagnostics>
<sources>
<source name="MyTraceSource" switchValue="Information">
<listeners>
<add name="file" initializeData="c:\temp\logappconfig.txt" traceOutputOptions="DateTime" type="System.Diagnostics.TextWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</listeners>
</source>
</sources>
</system.diagnostics>