Log4Net可以自动删除日志文件吗?

我在用C#编写的Windows服务程序中使用log4net RollingFileAppender。 日志目录中文件的数量和大小增长太快,需要清理。 配置如下:

          

我只想保留30天的日志。 如何配置log4net自动删除日志? 如果没有通过log4net提供,我会有什么解决方案?

先感谢您。

这里是另一个问题,从这里问到基本相同的事情: Log4Net:使用滚动日期在RollingFileAppender上设置最大备份文件

共识是log4net不直接支持它。 一张海报说它已经在log4net的源代码库中实现,但还没有发布。 另一张海报显示了他用来定期清理旧文件的一些代码。

我很确定你不能使用现有的appender,虽然我无法确认。

但是,我看到两个选择:

  1. 创建自己的appender,子类化RollingFileAppender(或者,如果你想要更多的控件,可以创建子类FileAppender)。 然后更改配置文件以使用该appender(更改appender元素)。
  2. 创建一个删除超过x天的文件的.bat文件(请参阅: 批处理文件以删除超过N天的文件 )。 然后在Windows( http://support.microsoft.com/kb/308569 )中创建一个运行此bat文件的任务,例如每天。

这应该提供一些帮助。 查找RollingFileAppender部分