【问题标题】:WCF Logging with parameters and method name带有参数和方法名称的 WCF 日志记录
【发布时间】:2013-05-31 03:24:49
【问题描述】:

我正在尝试记录对我的 WCF Restfull 服务的所有调用。 我需要能够查看方法名称、传递给它的所有参数以及任何响应(字符串、对象、列表)

这是我在配置文件中的设置:

<system.serviceModel>
    <diagnostics>
  <messageLogging
       logEntireMessage="true"
       logMalformedMessages="true"
       logMessagesAtServiceLevel="false"
       logMessagesAtTransportLevel="true"
       maxMessagesToLog="2147483647"
       maxSizeOfMessageToLog="2147483647"/>
</diagnostics>

</system.serviceModel>
 <system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing" propagateActivity="true">
    <listeners>
      <add name="ServiceModelTraceListener">
        <filter type=""/>
      </add>
    </listeners>
  </source>
  <source name="System.ServiceModel.MessageLogging">
    <listeners>
      <add name="ServiceModelMessageLoggingListener">
        <filter type=""/>
      </add>
    </listeners>
  </source>
</sources>
<sharedListeners>
  <add initializeData="c:\Temp\Tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
    <filter type=""/>
  </add>
  <add initializeData="c:\Temp\Messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
    <filter type=""/>
  </add>
</sharedListeners>
<trace autoflush="true"/>

在 Messages.svclog 文件中,Activity 选项卡不显示对我的 Method 的调用。它仅在 Received 消息的正文中显示传递的参数。响应消息也不显示方法名称,但我可以在 Action 属性下看到它。

在 Tracelog.svclog 文件中,“活动”选项卡确实显示了对我的方法的调用,但它不显示任何传递的参数或响应对象

如何设置它以查看使用参数调用的方法及其响应?

【问题讨论】:

    标签: wcf logging trace


    【解决方案1】:

    您需要扩展 WCF 以将您的日志记录注入其中。您可以提供自己的IOperationInvoker,它可以记录呼叫的输入和输出,也可以使用IParameterInspector。您也可以查看来自 IDesign 的 The Enterprise Services Logbook(您必须在页面上搜索)或这里是 direct link

    【讨论】:

    • 我希望有更简单的方法来实现它。
    • 如果您查看提供的链接,它们会为您提供有关如何实现拦截的完整示例。它们可能看起来很难,但添加起来相当简单。
    猜你喜欢
    • 1970-01-01
    • 2014-10-23
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多