c#网络编程------网络追踪之app.config

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <system.diagnostics>

    <sources>

      <source name="System.Net">

        <listeners>

          <add name="System.Net"/>

        </listeners>

      </source>

      <source name="System.Net.Sockets" >

        <listeners>

          <add name="System.Net"/>

        </listeners>

      </source>

      <source name="System.Net.Cache">

        <listeners>

          <add name="System.Net"/>

        </listeners>

      </source>

    </sources>

    <switches>

      <add name="System.Net" value="31" />

      <add name="System.Net.Sockets" value="Verbose"  />

      <add name="System.Net.Cache"  value="Verbose"  />

    </switches>

    <sharedListeners >

      <add name="System.Net"

           type="System.Diagnostics.TextWriterTraceListener"

           initializeData="my.log"

           />

    </sharedListeners>

    <trace autoflush="true">

    </trace>

  </system.diagnostics>

</configuration>

 

C#网络编程中,微软的vs2010提供了相关的跟踪方法,便于开发人员得到网络通信的信息,具体配置如下:

Trace实现网络跟踪记录,需要添加app.config文件(右键某project的add new item,选择添加一个xml文件就可以,文件名填写为app.config),之后要将相关的配置信息(如上所示的xml)。

         这些节点的具体用途还没有弄清楚,只是知道sources节点必须要和switches下的节点对应起来,才能追踪并输出结果。sources下的source节点的name为想要追踪的dll名,listener节点下的add节点的name为添加到名字为System.Net(自定义名字,和system.Net这个dll一点关系都没有)的listener(在sharedListener处要用到)。

影响输出结果的主要是在switches节点下add节点的value值。此处value一个枚举类型,可以写入int或者枚举对应的string(31,Verbose)。

输出log的存储路径写在sharedListeners节点下add节点的initializeData属性后。

运行程序,你就会看到log打出了。在vs2010下的output窗口,也会有同样的信息。

以下为value值对应的enum。

    public enum SourceLevels

    {

        All = -1,

        Off = 0,

        Critical = 1,

        Error = 3,

        Warning = 7,

        Information = 15,

        Verbose = 31,

        ActivityTracing = 65280,

    }

你可能感兴趣的:(c#网络编程------网络追踪之app.config)