【问题标题】:How can you delete old log4net logfiles?如何删除旧的 log4net 日志文件?
【发布时间】:2011-02-09 13:28:46
【问题描述】:

我们有一个使用 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 配置是什么?
  • 正如 KMan 的回答所示:删除旧日志文件不适用于滚动样式 = 日期

标签: c# asp.net configuration log4net


【解决方案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();
            }
        }

【讨论】:

    【解决方案2】:

    如果this answer 对您没有帮助,那么您也可以提供一个 Windows 服务来完成清除工作。

    【讨论】:

      【解决方案3】:

      我建议您使用 Windows 任务调度程序来完成这项工作。

      【讨论】:

      • 为什么 Windows 任务计划程序超过 Windows 服务??
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 2013-05-25
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多