WCF TraceListener

来源:互联网 发布:消防知识知多少图片 编辑:程序博客网 时间:2024/05/08 01:56
 <system.serviceModel>  <diagnostics>      <messageLogging logEntireMessage="true" logMalformedMessages="true"         logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true"  maxMessagesToLog="10" />      <endToEndTracing messageFlowTracing="false"   />    </diagnostics>  </system.serviceModel>

System.ServiceModel里面需要配置以上信息,才能够记录日志(不配置的话,不会记录WCF消息)

以上配置完了,需要进行以下配置:

  <system.diagnostics>      <sources>        <source name="System.ServiceModel.MessageLogging" >          <listeners>            <add name="traceListener"                 type="System.Diagnostics.XmlWriterTraceListener"                initializeData= "c:\Traces.svclog"    traceOutputOptions="DateTime"  >              <filter type="" />            </add>          </listeners>        </source>      </sources>      <trace autoflush="true" />  </system.diagnostics>
配置好Source和Listeners就可以记录WCF消息了。

上面的listener是系统自带的,也可以自定义,通过继承TraceListener,重写Write和WriteLine抽象方法。

配置如下

  <system.diagnostics>      <sources>        <source name="System.ServiceModel.MessageLogging" >          <listeners>            <add name="traceListener"                 type="MyNameSpace.MyListener,MyNameSpace">  格式【类型,程序集名称】              <filter type="" />            </add>          </listeners>        </source>      </sources>      <trace autoflush="true" />  </system.diagnostics>

还可以将listener放到外面来,作为共享listener,定义多个source来使用,通过listener的name

<system.diagnostics>    <sources>      <source name="System.ServiceModel.MessageLogging" >        <listeners>          <add name="traceListener">            <filter type=""/>  可以删除          </add>        </listeners>      </source>      <source name="System.Runtime.Serialization">        <listeners>          <add name="traceListener" /></span>        </listeners>      </source>    </sources>    <sharedListeners>      <add name="traceListener"  type="MyNameSpace.MyListener,MyNameSpace">        <filter type="" />    可以删除      </add>    </sharedListeners>    <trace autoflush="true" />  </system.diagnostics>

还可以参考MSDN配置跟踪




0 0
原创粉丝点击