Изменить уровень переключателя трассировки с помощью 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;
Приложение всегда использует этот источник трассировки для отслеживания событий.
Обратите внимание, что SourceLevels.Information жестко закодирован в переключателе трассировки.
Теперь мне нужно изменить уровень переключателя трассировки на Verbose. Можно ли выполнить файл app.config? Я пробовал много xml-configs, но не смог. Примечание. Я не могу изменить исходный код только app.config.
Ответы
Ответ 1
Я не уверен, что вы ищете что-то подобное, но я использовал следующую конфигурацию 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>
Возможно, это помогает
Ответ 2
Хорошо - Настройка трассировки четко указывает:
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
</source>
</sources>
Раздел "Уровень трассировки" описывает некоторые детали.
Ответ 3
Оба ответа выше имеют значение. Вот полный ответ. Добавьте этот раздел в свою конфигурацию:
<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>