我的项目中使用的Enterprise Library Logging工作正常,但是我注意到包含日志的文件夹已经开始变得臃肿,不再需要旧日志。我在app.config中的设置是:
<add name="CommonListener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="D:\Logs\Common.log" footer=" "
formatter="Text Formatter" header=" " rollFileExistsBehavior="Increment"
rollInterval="Midnight" rollSizeKB="1000000"/>
目前我可以手动删除这些内容,但这会导致问题,因为我无法访问它们将被存储的位置。是否有我可以添加到配置文件中的配置,该配置文件将标记它们在&#39; x&#39;之后被删除。天数?
答案 0 :(得分:4)
我通过在监听器声明中将以下内容添加到app.config来限制Enterprise Logging sotes的文件数量来修复此问题:
maxArchivedFiles="20"
现在,日志记录最多只能保存20个文件,并在达到此阈值时删除最旧的文件。
我发现这样做的另一种不涉及企业库的方法可以在这里找到: Background Worker Check For When It's Midnight?
这是通过System.IO完成的,以便在经过一段时间后引发事件。然后将其与一个函数组合以删除此答案中的所有文件: