如何使用循环跟踪库一起启用消息和跟踪日志记录?

时间:2018-07-04 10:28:58

标签: wcf logging tracing

为了减少wcf项目的svc日志文件大小,我进行了一项研究,发现了“ CircularTracing”库,它是Microsoft创建的模板。在their documentation中,他们添加了跟踪记录的示例,但是在我的情况下,我需要进行消息记录以检查开发人员填写的输入;我试图单独启用跟踪->成功运行,并生成了2个日志文件;我尝试仅启用消息日志记录,但也成功运行;

但是,当我试图使它们一起工作时->他的库没有生成2个web_Trace文件日志,仅生成了web_Trace00.cvclog,其大小可以超过最大大小;除此之外,该库还生成了2个消息日志文件,但没有考虑最大文件大小;

enter image description here

下面是我的web.config代码:

  <system.diagnostics>    
      <sources>
        <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing" >
          <listeners>
            <add name="CircularMessageListener" />
          </listeners>
        </source>   
        <source name="System.ServiceModel" switchValue="Warning, ActivityTracing" propagateActivity="true">
          <listeners>
            <add name="CircularTraceListener" />
          </listeners>
        </source>
      </sources>    
      <sharedListeners>
        <add name="CircularMessageListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener, CircularTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
            initializeData="C:\inetpub\wwwroot\MyProject\Log\web_messages.svclog" maxFileSizeKB="20" />
        <add name="CircularTraceListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener, CircularTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
            initializeData="C:\inetpub\wwwroot\MyProject\Log\web_Trace.svclog" maxFileSizeKB="20" /> 
         </sharedListeners>    
      <trace autoflush="true" />  
    </system.diagnostics> 

有任何提示吗?

1 个答案:

答案 0 :(得分:0)

我发现对于消息日志文件:某些消息的长度大于20 KB,这就是为什么消息日志文件大于20的原因,之后另一个文件按预期记录了数据; 关于跟踪日志文件:我不知道为什么不创建另一个文件,我很高兴有人能帮助我发现问题...但是最终我还是将两个日志文件都使用了一个文件:

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing" >
        <listeners>
          <add name="CircularMessageTraceListener" />
        </listeners>
      </source>
      <source name="System.ServiceModel" switchValue="Warning, ActivityTracing" propagateActivity="true">
          <listeners>
            <add name="CircularMessageTraceListener" />
          </listeners>
        </source>
    </sources>
    <sharedListeners>
      <add name="CircularMessageTraceListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener, CircularTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
          initializeData="C:\inetpub\wwwroot\MyProject\Log\web_messages_trace.svclog" maxFileSizeKB="20" />      
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>

通过这种方式,我可以生成2个web_messages_trace生成的日志文件,希望这对任何人都可以帮助;