【问题标题】:WCF Diagnostics Message Logging With Unique Id具有唯一 ID 的 WCF 诊断消息日志记录
【发布时间】:2015-09-16 13:15:30
【问题描述】:

我正在使用 System.Diagnostics System.ServiceModel.MessageLogging 为 WCF Web 服务记录消息,配置如下。我扩展了 TraceListener 类为:

public class FormattedTraceListener : TraceListener
    {
        static readonly Logger logger = new Logger();

        public FormattedTraceListener()
            : base(string.Empty)
        {
        }

        public override void TraceData(TraceEventCache eventCache,String source,TraceEventType eventType,**Int32 id,**Object data)
        {
//....
 <system.diagnostics>
    <sources>
      <source name="System.ServiceModel.MessageLogging" >
        <listeners>
          <add name="pretty" />
          <remove name="Default"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="pretty" lockItem="true" type="LoggingTest.FormattedXmlWriterTraceListener,LoggingTest" />
    </sharedListeners>
    <trace autoflush="true" indentsize="4">
    </trace>
</system.diagnostics>

....

 <diagnostics >
      <messageLogging
                    logEntireMessage="true"
                    logMalformedMessages="false"
                    logMessagesAtServiceLevel="true"
                    logMessagesAtTransportLevel="false"
                    maxMessagesToLog="-1"
                    maxSizeOfMessageToLog="134217728">
        <filters >
          <add xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">/s:Envelope</add>
          <add xmlns:s="http://www.w3.org/2003/05/soap-envelope">/s:Envelope</add>
        </filters>
      </messageLogging>
      <endToEndTracing  propagateActivity="true" activityTracing="true" messageFlowTracing="true" />
    </diagnostics>
</system.serviceModel>

TraceData 方法为每个服务调用触发两次(用于请求和响应)。 但是,当方法被命中时,id 参数始终为 0。

我需要一个唯一的记录文本来匹配请求和响应日志。我该如何指定?

【问题讨论】:

    标签: c# wcf logging key unique


    【解决方案1】:

    你的方法不对。 TraceData(int id) 字段不是 WCF 请求的唯一 ID。它是事件类型的应用程序定义代码。

    只需使用标准 WCF 跟踪类和view correlated traces。如果我了解您在将请求与响应相匹配时要完成的工作,则默认行为已经满足您的要求。

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2015-11-26
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      相关资源
      最近更新 更多