4

log4net では、設定を からロードするapp.configか、任意の xml ファイルからロードするかを選択できます。

System.Diagnostics.TraceSourceの構成を任意の xml ファイルからロードすることは可能ですか?

4

1 に答える 1

4

System.Diagnostics クラスは、アプリケーション構成ファイルのみを調べます。たとえば、 SourceSwitchの備考セクションには次のように記載されています。

SourceSwitch を構成するには、アプリケーションの名前に対応する構成ファイルを編集します。

コードを調べると、これらのクラスが内部的に静的クラスを使用し、現在の app.config から構成セクションをDiagnosticConfiguration取得するだけであることがわかります。system.diagonostics

ただし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>
于 2014-02-14T14:29:19.483 に答える