从xml文件加载System.Diagnostics.TraceSource的配置

时间:2014-02-14 14:05:34

标签: c# logging tracesource

在log4net中,可以选择从app.config加载配置,还是从任意xml文件加载。

是否可以从任意xml文件加载System.Diagnostics.TraceSource的配置?

1 个答案:

答案 0 :(得分:4)

System.Diagnostics类仅查看应用程序配置文件。例如。 SourceSwitch的备注部分说:

  

要配置SourceSwitch,请编辑该配置文件   对应于您的申请名称。

如果您要查看代码,您会看到内部这些类使用静态DiagnosticConfiguration类,它只从当前app.config中获取system.diagonostics配置部分

但是您可以将system.diagonostics configuratin部分移动到单独的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>