我正在使用Microsoft.ServiceModel.Samples.CircularTracecListener二进制来实现webservice服务上的错误记录。
它应该写入一个文件,直到到达maxFileSizeKB,然后滚动到一个辅助文件。当我用较低的文件大小限制测试它时,这个过程工作得很好,而且滚动发生的时间很短。
奇怪的是,当我设置maxFileSizeKB时,第二天我发现记录器覆盖了主文件,而次要文件保持不变。
web.config文件设置如下:
<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日志时,我发现应用程序池几乎与我的日志文件被擦除的时间相同。
发布于 2017-11-23 10:45:24
Microsoft.ServiceModel.Samples.CircularTraceListener代码示例读取maxFileSizeKB设置一次。为了使对该设置所做的更改生效,必须重新启动宿主进程。
编辑:
当您编辑web.config时,IIS应用程序池将在默认情况下自动回收。
如果IIS应用程序池被回收,它将覆盖主文件(webserviceLog00.xml)。
您可以将“应用程序池>高级设置...>回收>禁用配置更改的回收”设置为true,以防止应用程序池重新启动。
https://stackoverflow.com/questions/46284384
复制相似问题