.net跟踪监听器用于每个交换机

本文关键字:交换机 用于 跟踪 监听器 net | 更新日期: 2023-09-27 17:53:17

目前在我的应用程序中,我有许多跟踪开关和布尔开关。侦听器被配置为登录到一个文本文件。这是可行的。代码片段如下:

<configuration> <system.diagnostics>
<switches>
  <add name="booleanSwitch1" value="true"/>
  <add name="booleanSwitch2" value="true"/>
  <add name="traceSwitch1" value="4"/>
  <add name="traceSwitch2" value="1"/>
</switches>
<trace autoflush="true" indentsize="2">
  <listeners>
    <add name="traceTestingListner" type="System.Diagnostics.TextWriterTraceListener" initializeData="d:'Traces'traceTesting.log" traceOutputOptions="DateTime">
    </add>
  </listeners>
</trace>

我想把每个交换机日志放入不同的日志文件。我怎样才能做到呢?

我可以为每个交换机添加侦听器并将该日志重定向到不同的日志文件吗?如果有,该怎么做呢?

谢谢你的帮助。

.net跟踪监听器用于每个交换机

灵感来自使用多个跟踪侦听器

您可以像下面这样配置您的TraceSource,使用多个跟踪源并为每个源设置单独的侦听器

<configuration> <system.diagnostics>
<switches>
  <add name="booleanSwitch1" value="true"/>
  <add name="booleanSwitch2" value="true"/>
  <add name="traceSwitch1" value="4"/>
  <add name="traceSwitch2" value="1"/>
</switches>
    <sources>
      <source name="booleanSwitch1Source" switchName="booleanSwitch1" switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <clear />
    <add name="traceTestingListner" type="System.Diagnostics.TextWriterTraceListener" initializeData="d:'Traces'traceTesting.log" traceOutputOptions="DateTime">
        </listeners>
      </source>
      <source name="booleanSwitch2Source" switchName="booleanSwitch2" switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <clear />
    <add name="traceTestingListner1" type="System.Diagnostics.TextWriterTraceListener" initializeData="d:'Traces'traceTesting1.log" traceOutputOptions="DateTime">
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
</configuration>

你可以像

那样定义你的TraceSource
TraceSource bswitch1 = new TraceSource("booleanSwitch1Source");

还有,查看下面的帖子

定义多个未运行的tracesource

如何:在跟踪侦听器中使用TraceSource和过滤器