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

WCF logging producing multiple svc file

我有一个名为 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>

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

我的问题是。

1) 为什么会产生这么多日志文件?如何将所有日志写入一个名为.

的文件中

2) 如何只记录所有未处理的异常?

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">

希望对您有所帮助。