Загрузка конфигурации для System.Diagnostics.TraceSource из файла XML

В log4net можно выбирать между загрузкой конфигурации из app.configили из произвольного XML-файла.

Можно ли загрузить конфигурацию для System.Diagnostics.TraceSource из произвольного XML-файла?

1 ответ

Решение

Классы System.Diagnostics смотрят только на файл конфигурации приложения. Например, в разделе замечаний SourceSwitch говорится:

Чтобы настроить SourceSwitch, отредактируйте файл конфигурации, который соответствует имени вашего приложения.

Если вы посмотрите на код, вы увидите, что внутренне эти классы используют статические DiagnosticConfiguration класс, который просто получает system.diagonostics раздел конфигурации из текущего app.config

НО вы можете двигаться system.diagonostics Конфигурационный раздел для отдельного XML-файла. Просто укажите имя файла, в котором будет определен раздел:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics configSource="diagnostics.xml"/>
</configuration>

diagnostics.xml

<system.diagnostics>
  <sources>
    <source name="foo" switchName="bar"
            switchType="System.Diagnostics.SourceSwitch">
      <listeners>
        <add name="console"/>
      </listeners>
    </source>
  </sources>
  <switches>
    <add name="bar" value="Warning"/>
  </switches>
  <sharedListeners>
    <add name="console" 
         type="System.Diagnostics.ConsoleTraceListener" initializeData="false"/>
  </sharedListeners>
  <trace autoflush="true" indentsize="4">
    <listeners>
      <add name="console"/>
    </listeners>
  </trace>
</system.diagnostics>
Другие вопросы по тегам