Изменить уровень переключателя трассировки с помощью 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>