Windows Communication Foundation (WCF) 默认启用消息日志,WCF使用了在System.Diagnostics名称空间中定义的跟踪机制。在这个跟踪机制中,通过在配置文件中配置跟踪源(Trace Sources)和跟踪侦听器(Trace Listenners来记录跟踪数据。

在WCF中,要启用消息日志,必须在配置文件中(服务端或客户端)添加一个侦听器来侦听源:System.ServiceModel.MessageLogging,并且还需要为 <messagelogging>元素配置好属性。

配置格式如下:


<system.serviceModel>
      <diagnostics>
          <messageLogging
            logEntireMessage="true"
            logMalformedMessages="true"
            logMessagesAtServiceLevel="false"
            logMessagesAtTransportLevel="true"
            maxMessagesToLog="2147483647"
            maxSizeOfMessageToLog="2147483647"
        />
      </diagnostics>
</system.serviceModel>
<system.diagnostics>
        <trace autoflush="true" />
        <sources>
            <source name="System.ServiceModel.MessageLogging">
                <listeners>
                    <add name="ServiceModelMessageLoggingListener">
                        <filter type=""/>
                    </add>
                </listeners>
            </source>            
        </sources>
        <sharedListeners>
            <add initializeData="Messages.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
                <filter type=""/>
            </add>
        </sharedListeners>
    </system.diagnostics>

配置说明:

messageLogging 

   前四个属性表示启用哪些类型的日志记录,后两个属性表示消息记录最大占用空间值,如果达到最大值,则所有的日志记录活动会中止。

跟踪源System.ServiceModel.MessageLogging

  可以为源添加不同名称和类型的侦听器(listenner),在这个案例中我们将侦听器命名为:ServiceModelMessageLoggingListener,它是一个共享的侦听器,类型为

System.Diagnostics.XmlWriterTraceListener,使用这种类型的侦听器,必须要指定输出文件的路径和名称,通过设置来属性initializeData 来指定。如果路径不是绝对路径,则文件位于当前程序目录下。文件后缀名为svclog,这样打开时显示效果会比较好。显示效果如下图所示:

消息过滤

可以通过配置消息过滤只记录我们想要跟踪的消息,可以在messageLogging元素中增加子元素filters来实现,如下所示:


<messageLogging logEntireMessage="true"
    logMalformedMessages="true" 
    logMessagesAtServiceLevel="true"
    logMessagesAtTransportLevel="true"
    maxMessagesToLog="420">
    <filters>
        <add nodeQuota="10" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
                 /soap:Envelope/soap:Header
        </add>
     </filters>
</messageLogging>

其中要过滤的内容为我们想要跟踪的消息具有的特征,过滤内容只包含SOAP Header部分。过滤内容支持完整的XPath格式。

最新文章

  1. React之事件绑定、列表中key的使用
  2. Firemonkey 载入 Style 皮肤 (*.fsf 二进制文件) 速度测试
  3. TYVJ1864 守卫者的挑战
  4. 2、IValueConverter应用
  5. QNX 实时操作系统(Quick Unix)
  6. [转] AE之分级颜色专题图渲染
  7. jQuery之文本框得失焦点
  8. 《Mathematical Olympiad——组合数学》——染色问题
  9. wpf之ListBox横向显示所有ListBoxItem
  10. MySQL索引的使用方式
  11. vue.js初学,笔记1,安装
  12. android stuido搭配git常用命令
  13. 初次安装git配置用户名和邮箱
  14. python利用beautifulSoup写爬虫
  15. springboot redis多数据源设置
  16. 从MyEclipse到IntelliJ IDEA ——让你脱键盘,全键盘操作
  17. NOI 4977 怪盗基德的滑翔翼(LIS)
  18. [Flutter] Image.File 加载图像时文件内容变化显示不变解决
  19. Python爬虫教程-02-使用urlopen
  20. Toast与Snackbar的那点事

热门文章

  1. [转] 基于NodeJS的前后端分离的思考与实践(五)多终端适配
  2. day17--JQuery
  3. Python列表split方法
  4. Mysql 模糊匹配(字符串str中是否包含子字符串substr)
  5. hdu 2167 方格取数 【状压dp】(经典)
  6. 【知了堂学习笔记】java 自定义异常
  7. 机器学习数据处理时label错位对未来数据做预测
  8. 【RAY TRACING THE REST OF YOUR LIFE 超详解】 光线追踪 3-7 混合概率密度
  9. win7查看其它工作组 win7 所有工作组
  10. internet连接共享