12

我使用 Microsoft 服务配置编辑器来设置诊断(WCF 日志记录),但我找不到任何方法来设置最大文件大小?

我找到了 MaxSizeOfMessageToLog 但对文件大小没有任何作用?

编辑1:根据这个: http: //msdn.microsoft.com/en-us/library/aa395205.aspx 在 sharedListeners 级别应该有一个 maxFileSizeKB 但是在添加标签中点击空间时我没有机会输入 maxFileSizeKB?

编辑 2:添加 maxFileSizeKB 时,服务将不再启动,而是我会得到以下异常:

“maxFileSizeKB”不是“System.Diagnostics.XmlWriterTraceListener”类型的有效配置属性。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.Configuration.ConfigurationErrorsException:“maxFileSizeKB”不是“System.Diagnostics.XmlWriterTraceListener”类型的有效配置属性。源错误:在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

编辑 3:

我必须下载 Circular TraceListener 示例并将其包含在我的项目中,没有内置的 fileSize 限制器。

我的配置现在看起来像这样:

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
        <listeners>
          <add name="ServiceModelMessageLoggingListener"/>
        </listeners>
      </source>
      <source name="System.ServiceModel" switchValue="Warning,ActivityTracing"
        propagateActivity="false">
        <listeners>
          <add name="ServiceModelTraceListener"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="C:\My\MyRelease 0.31\Host\My.Host.Dev\web_messages.svclog"
        type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
        name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp" maxFileSizeKB="1024">
        <filter type="" />
      </add>
      <add initializeData="C:\My\MyRelease 0.31\Host\My.Host.Dev\web_tracelog.svclog"
        type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
        name="ServiceModelTraceListener" traceOutputOptions="Timestamp" maxFileSizeKB="1024">
        <filter type="" />
      </add>
    </sharedListeners>

这是限制消息日志文件而不是跟踪日志文件?

4

2 回答 2

12

这是因为您提供的链接使用了自定义跟踪侦听器(“Microsoft.ServiceModel.Samples.CircularTraceListener”),它具有“maxFileSizeKB”属性。

没有限制/滚动 svclog 文件的内置功能,因此您确实需要使用自定义跟踪侦听器。您可以使用链接中使用的示例(在文章末尾阅读如何下载代码)。或者这是另一个有用的。

于 2012-04-11T08:26:50.723 回答
8

只想添加到@Fabske 答案,以便使其正常工作

1) 下载 WCF 示例: http: //go.microsoft.com/fwlink/ ?LinkId=150780

2) 打开 :\WF_WCF_Samples\WCF\Basic\Management\CircularTracing

3) 构建解决方案并获取 CircularTraceListener.dll

4)将该dll添加到您的项目引用中

5) 更新您的配置,如图所示http://msdn.microsoft.com/en-us/library/aa395205(v=vs.100).aspx

于 2012-08-28T17:44:11.977 回答