2010-04-19 2 views
3

У нас есть приложение, которое регистрируется с помощью log4net. Но мы хотели бы удалить лог-файлы каждые 4 недели (автоматически).
Есть ли опция в log4net для этого или нам нужно иметь работу arround?Как удалить старые logfiles log4net?

Приветствия, М.

это моя конфигурация

<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? –

+0

как ответ KMan указывает: удаление старых файлов журналов не работает с катящимся стилем = дата –

ответ

4

Если this answer не поможет вам, вы также можете придумать услугу Windows, которая будет выполнять очистку.

1

Я хотел бы предложить вам с помощью планировщика задач Windows для этой работы.

+0

Почему Windows Task Scheduler OVER Windows Service? – msbyuva

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(); 
      } 
     } 
Смежные вопросы