• WCF 第九章 诊断 消息日志


    跟踪用来记录一个分布式应用的多个组件的流和独立动作。另外一个特性,消息日志,用来记录从客户端/服务端或者到客户端/服务端的消息内容。消息日志可以配置为在服务端捕捉消息,在传输层记录那些不正确的消息。通过消息日志捕捉的数据对很多情况都是有用的,从诊断到创建审计跟踪服务都可以使用。

    开启消息日志

    和跟踪一样,消息日志是基于System.Diagnostics而且默认是关闭的。它可以首先通过System.ServiceModel.MessageLogging跟踪源添加一个处理消息的跟踪监听器(例如,XMLWriterTraceListener)开启。

      列表9.3显示了我们的SelfHost应用程序,配置为使用消息日志。

    列表9.3 在配置文件中开启消息日志

    <system.serviceModel>
    <services.../>
    <behaviors .../>
    <diagnostics>
    <messageLogging logEntireMessage="true" logMessagesAtServiceLevel="true"
    maxMessagesToLog
    ="4000" />
    </diagnostics>
    <system.diagnostics>
    <sources>
    <source name="System.ServiceModel" switchValue="Warning, ActivityTracing"
    propagateActivity
    ="true">
    <listeners>
    <add type="System.Diagnostics.DefaultTraceListener" name="Default">
    <filter type="" />
    </add>
    </listeners>
    </source>
    </sources>
    <sharedListeners>
    <add initializeData="App_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    name
    ="tracelog" traceOutputOptions="Timestamp">
    <filter type="" />
    </add>
    </sharedListeners>
    </system.diagnostics>

      <system.diagnostics>部分看起来与用来开启跟踪的功能类似。我们已经使用System.ServiceModel.MessageLogging添加了一个源,通过这个结构消息可以用来记录,使用同样的监听类处理源,XMLWriterTraceListener之前用来跟踪。

      然而与跟踪不同,通过在一个<messageLogging>元素中确定MessageLogging源发出的消息格式和冗余,添加到<system.serviceModel><diagnostics>配置节点。表9.2显示了messageLogging选项和它们的目的的详细描述。这些选项的任何一个都可能在配置文件中确定,那些将不会使用默认值的将会在表9.2中显示。

    表9.2 messageLogging 选项

    选项 默认值 目的
    logEntireMessage False 如果是true,消息头和消息体都被记录。如果是false,只有消息头会被记录。
    logMalformedMessages False 记录格式不正确的消息。
    logMessagesAtServiceLevel False 记录由服务自身接收或者发送的消息。
    logMessageAtTransportLevel False 记录编码传输前的消息或者直接在从传输通道接收后。
    maxMessagesToLog 10, 000 记录消息的最大数量,超过此数目的日志都会被阻塞。
    maxSizeOfMessageToLog 262,144 将要记录的最大消息大小,字节。如果一条消息超过了这个限制,它将会被忽略而且同时会显示一条警告信息。

      注意在传输层记录的消息可能是加密过的,取决于你选择的绑定或者配置选项。


    作者:DanielWise
    出处:http://www.cnblogs.com/danielWise/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    leetcode——91.解码方法
    leetcode——64.最小路径和
    Layui上传图片2.0版
    LINQ中判断日期时间段
    Http基础
    Js中数组,字符串的常用方法
    C#数组,ArrayList,List区别
    08-01 通过线性回归了解算法流程
    08-00 课程习得
    C-02 推荐系统
  • 原文地址:https://www.cnblogs.com/danielWise/p/1955150.html
Copyright © 2020-2023  润新知