简体   繁体   中英

Logging Request and Response values for a WCF request in client

I am trying to log the request ad response messages in my client while the client is consuming a thirdparty WebService.

Despite of many attempts the log file - MessageLog.svclog never gets created using the following WCF configuration in the app.config file. Please help.

<system.diagnostics>
<sources>
  <source
     name="System.ServiceModel.MessageLogging"
     switchValue="Information, ActivityTracing" >
    <listeners>
      <add name="yourTrace"
           type="System.Diagnostics.XmlWriterTraceListener"
           initializeData="C:\Log\MessageLog.svclog">
        <filter type="" />
      </add>
    </listeners>
  </source>
</sources>
<trace autoflush="true" />
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging
        logMessagesAtTransportLevel="true"
        logMessagesAtServiceLevel="false"
        logMalformedMessages="true"
        logEntireMessage="true"
        maxSizeOfMessageToLog="65535000" maxMessagesToLog="500" />
</diagnostics>
</system.serviceModel>

Thank you !

Try this. Notice the SharedListeners node

<system.diagnostics>
  <sources>
    <source name="System.ServiceModel.MessageLogging" 
          switchValue="Warning, ActivityTracing">
      <listeners>
        <add type="System.Diagnostics.DefaultTraceListener" name="Default">
          <filter type="" />
        </add>
        <add name="ServiceModelMessageLoggingListener">
          <filter type="" />
        </add>
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add initializeData="C:\Log\MessageLog.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" />
</system.diagnostics>
<system.serviceModel>
    <diagnostics>
        <messageLogging logEntireMessage="true" logMalformedMessages="true"
          logMessagesAtTransportLevel="true" />
    </diagnostics>
    ...
</system.serviceModel>

I had problem with WS Client tracing where App.config and folder permissions were totally ok. The solution in my case was that I renamed it to .exe.config (was built to .dll.config of the WS client dll). So make sure:

  1. That the name in the folder of the config file matches the assembly name
  2. That when you run/debug it, the assembly that config file is for, is really used and not assembly for other location.
  3. If it is built into .dll.config it is maybe ignored cause it should be .exe.config.

-m

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM