2010-04-19 256 views
3

我们有一个使用log4net登录的应用程序。 但我们希望每4周(自动)删除日志文件。
在log4net中有没有这样做的选择,还是我们需要有一个工作周转?如何删除旧的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> 
+0

什么是你的log4net的配置? – 2010-04-19 06:09:02

+0

作为KMan的答案表示:删除旧的日志文件不适用于滚动样式=日期 – 2010-04-19 13:44:05

回答

4

如果this answer不能帮助你,那么你也可以想出一个可以执行清除工作的windows服务。

1

我会使用Windows任务调度这个工作建议你。

+0

为什么Windows任务计划程序在Windows服务? – msbyuva 2014-09-29 15:06:32

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(); 
      } 
     }