你如何删除旧的log4net日志文件?

3
我们有一个使用log4net进行记录的应用程序。 但是我们希望每4周自动删除日志文件。
在log4net中是否有此选项,或者我们需要采用其他方法来实现?
祝好, M.
这是我的配置:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="Logs/Log4Net/"/>
    <appendToFile value="true"/>
    <rollingStyle value="Date"/>
        <staticLogFileName value="false" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <datePattern value="yyyy-MM-dd-HH.lo\g" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="1MB" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
    </layout>
  </appender>
  <root>
    <level value="ALL"/>
    <appender-ref ref="RollingFileAppender"/>
  </root>

你的log4net配置是什么? - Ron Klein
正如KMan的答案所示:使用滚动样式=日期无法删除旧日志文件。 - Stefan Egli
3个回答

4
如果这个答案对您没有帮助,那么您也可以考虑编写一个Windows服务来执行清理工作。

1
您可以在程序中这样做:
        string[] logFiles = Directory.GetFiles("Logs\\");
        foreach (string logFile in logFiles)
        {
            FileInfo fileInfo = new FileInfo(logFile);
            if (fileInfo.CreationTime < DateTime.Now.AddMonths(-1))
            {
                fileInfo.Delete();
            }
        }

1
我建议您使用Windows任务计划程序来完成这项工作。

为什么选择Windows任务计划程序而不是Windows服务? - msbyuva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接