首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#循环traceListener不滚动文件

c#循环traceListener不滚动文件
EN

Stack Overflow用户
提问于 2017-09-19 00:44:01
回答 1查看 601关注 0票数 2

我正在使用Microsoft.ServiceModel.Samples.CircularTracecListener二进制来实现webservice服务上的错误记录。

它应该写入一个文件,直到到达maxFileSizeKB,然后滚动到一个辅助文件。当我用较低的文件大小限制测试它时,这个过程工作得很好,而且滚动发生的时间很短。

奇怪的是,当我设置maxFileSizeKB时,第二天我发现记录器覆盖了主文件,而次要文件保持不变。

web.config文件设置如下:

代码语言:javascript
复制
  <system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Information,ActivityTracing" >
    <listeners>
      <add name="CircularTraceListener" />
    </listeners>
  </source>
</sources>
<sharedListeners>
  <add name="CircularTraceListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
       initializeData="c:\log\webserviceLog.xml" maxFileSizeKB="5120" />
</sharedListeners>
<trace autoflush="true" />

是否有人遇到过类似的问题?

我只能想到重新启动can服务,并让它从第一个文件开始。

可能是应用程序池回收?

当我检查iis日志时,我发现应用程序池几乎与我的日志文件被擦除的时间相同。

EN

回答 1

Stack Overflow用户

发布于 2017-11-23 10:45:24

Microsoft.ServiceModel.Samples.CircularTraceListener代码示例读取maxFileSizeKB设置一次。为了使对该设置所做的更改生效,必须重新启动宿主进程。

编辑:

当您编辑web.config时,IIS应用程序池将在默认情况下自动回收。

如果IIS应用程序池被回收,它将覆盖主文件(webserviceLog00.xml)。

您可以将“应用程序池>高级设置...>回收>禁用配置更改的回收”设置为true,以防止应用程序池重新启动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46284384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档