WCF日志记录生成多个svc文件

时间:2015-08-11 20:21:18

标签: c# wcf logging

我有一个名为HelloService的简单WCF服务库,它托管在WCF服务应用程序中。

我的服务托管在远程IIS服务器中。以下是我的日志记录服务配置。

<system.diagnostics>
<sources>
  <source propagateActivity="true" name="System.ServiceModel" switchValue="Error,ActivityTracing">
    <listeners>
      <add name="xml">
        <filter type="" />
      </add>
    </listeners>
  </source>
  <source name="System.ServiceModel.MessageLogging" switchValue="Error">
    <listeners>
      <add name="xml">
        <filter type="" />
      </add>
    </listeners>
  </source>
  <source name="myUserTraceSource" switchValue="Error,ActivityTracing">
    <listeners>
      <add name="xml">
        <filter type="" />
      </add>
    </listeners>
  </source>
</sources>
<sharedListeners>
  <add initializeData="D:\HelloService\HelloServiceLogs.svclog"
    type="System.Diagnostics.XmlWriterTraceListener" name="xml"
    traceOutputOptions="Timestamp">
    <filter type="" />
  </add>
</sharedListeners></system.diagnostics>

当我调用此服务时,有时它会记录现有文件,有时会创建新文件。 logFileCreated

我的问题是。

1)为什么会生成这么多日志文件?如何在一个名为。

的文件中写入所有日志

2)我怎样才能记录所有未处理的异常?

1 个答案:

答案 0 :(得分:0)

1)您可以使用以下配置配置消息大小:

<system.serviceModel>
  <diagnostics>
    <messageLogging 
         logEntireMessage="true" 
         logMalformedMessages="false"
         logMessagesAtServiceLevel="true" 
         logMessagesAtTransportLevel="false"
         maxMessagesToLog="3000"
         maxSizeOfMessageToLog="2000"/>
  </diagnostics>
</system.serviceModel>

在此处阅读更多内容:https://msdn.microsoft.com/en-us/library/ms730064%28v=vs.110%29.aspx

2)您可以设置日志记录级别,如下所示(仅在以下示例中出现错误):

<source propagateActivity="false" name="System.ServiceModel" switchValue="Error">

希望它有所帮助。