Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Log WCF Service Calls with Parameter information

Tags:

.net

logging

wcf

I've been using the Service Trace Viewer to analyse the WCF service calls that are made in our application but I really need to see the parameter values that are passed to the service methods? Is this possible? I've tried turning the logging to max output but still can't see anything :(

like image 992
Martin MacPherson Avatar asked Jul 24 '09 14:07

Martin MacPherson


1 Answers

If you enable message tracing, you should get all the details of both the call (including the XML representation of your message sent out) as well as the answer:

<system.diagnostics >
  <sources>
    <source  
        name="System.ServiceModel.MessageLogging" 
        switchValue="Information, ActivityTracing" >
       <listeners>
          <add name="yourTrace" 
               type="System.Diagnostics.XmlWriterTraceListener" 
               initializeData="C:\Logs\YourMessageLog.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>

This should create a file called "YourMessageLog.svclog" in a directory "C:\Logs" (which must exist beforehand!) and which you can view with the WCF Service Trace Viewer.

What you'll see here is the XML representation of the message going out and the response coming back in - your parameters will have been wrapped into your XML structure here. Is that what you're looking for?

like image 162
marc_s Avatar answered Oct 22 '22 04:10

marc_s