0
$\begingroup$

We have a .NET Framework 4.8 WCF client that has tracing enabled.

Problem is that the trace file is over 10GB and counting.

I want to implement a circular trace file microsoft link.

I took file example (CircularTraceListener.cs) from here microsoft example link and am trying to reuse it in my solution.

My system.diagnostics part of web.config looks like this:

<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>
     <source propagateActivity="true" name="System.ServiceModel" switchValue="Warning,ActivityTracing">
       <listeners>
         <add type="System.Diagnostics.DefaultTraceListener" name="Default">
           <filter type="" />
         </add>
         <add name="ServiceModelTraceListener">
           <filter type="" />
         </add>
       </listeners>
     </source>
   </sources>
   <sharedListeners>
     <add initializeData="app_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
       <filter type="" />
     </add>
     <add initializeData="app_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
       <filter type="" />
     </add>
   </sharedListeners>
   <trace autoflush="true" />
 </system.diagnostics>

After adding circular trace listener:

    <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>
     <source propagateActivity="true" name="System.ServiceModel" switchValue="Warning,ActivityTracing">
       <listeners>
         <add type="System.Diagnostics.DefaultTraceListener" name="Default">
           <filter type="" />
         </add>
         <add name="ServiceModelTraceListener">
           <filter type="" />
         </add>
       </listeners>
     </source>
    <source name="CustomNamespace" switchValue="Warning,ActivityTracing" propagateActivity="true">
        <listeners>
            <add name="CircularTraceListener" />
        </listeners>
    </source>
   </sources>
   <sharedListeners>
     <add initializeData="app_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
       <filter type="" />
     </add>
     <add initializeData="app_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
       <filter type="" />
     </add>
    <add name="CircularTraceListener" type="CustomNamespace.TraceListeners.CircularTraceListener"
           initializeData="CircularTracing-service.svclog" maxFileSizeKB="100" />
   </sharedListeners>
   <trace autoflush="true" />
 </system.diagnostics>

File in solution:

file

filecontent

This does not work, .svclog file does not get created and I am also getting an error from WCF service that activity id is missing.

What am I doing wrong?

$\endgroup$

1 Answer 1

0
$\begingroup$

The max file size is specified by setting the maxFileSizeKB attribute in the circular trace listener's configuration.

Problem is that the trace file is over 10GB and counting.

So you need to increase your maxFileSizeKB like this:

<system.diagnostics>
  <sources>
      <source name="CustomNamespace" switchValue="Warning,ActivityTracing" propagateActivity="true">
          <listeners>
              <add name="CircularTraceListener" />
          </listeners>
      </source>
  </sources>
  <sharedListeners>
      <add name="CircularTraceListener" type="CustomNamespace.TraceListeners.CircularTraceListener"
           initializeData="CircularTracing-service.svclog" maxFileSizeKB="134217728" />
  </sharedListeners>
   <trace autoflush="true" />
 </system.diagnostics>
$\endgroup$
Sign up to request clarification or add additional context in comments.

1 Comment

I updated my post to more clearly show my situation. The 10GB trace file is the "app_tracelog.svclog" file, not the circular one. The circular one does not even get created.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.