Подтвердить что ты не робот

Может ли Log4Net автоматически удалять файлы журналов?

Я использую log4net RollingFileAppender в служебной программе Windows, написанной на С#. Количество и размер файлов в каталоге журналов растет слишком быстро, требуется очистка. Конфигурация ниже:

<appender name="Rolling Log" type="log4net.Appender.RollingFileAppender">
<file value="..\logs\MyProgram.%cs{instanceName}.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyy-MM-dd.lo\g" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="150MB" />
<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date [%-5level] %property{remoteUser} [%threadIdentity] %type{1}.%method - %message%newline%exception" />
</layout>

Я хочу сохранить только 30 дней журналов. Как настроить log4net для автоматического удаления журналов? Если доступ к лог4net недоступен, какие решения у меня есть?

Спасибо заранее.

4b9b3361

Ответ 1

Вот еще один вопрос отсюда о SO, который задает практически одно и то же: Log4Net: установите максимальные резервные файлы на RollingFileAppender со скользящей датой

Консенсус заключался в том, что log4net не поддерживает его напрямую. Один плакат говорит, что он был реализован в репозитории исходного кода log4net, но еще не выпущен. Другой плакат показывает код, который он использует для периодической очистки старых файлов.

Ответ 2

Я уверен, что вы не можете сделать это с существующим приложением, хотя я не могу его подтвердить.

Однако я вижу два варианта:

  • Создайте свой собственный appender, подклассифицируя RollingFileAppender (или, если вам нужно больше контроля, подкласс FileAppender). Затем измените свой файл конфигурации, чтобы использовать этот appender (измените элемент appender).
  • Создайте файл .bat, который удаляет файлы старше x дней (см. Пакетный файл для удаления файлов старше N дней). Затем создайте задачу в Windows (http://support.microsoft.com/kb/308569), которая запускает этот файл bat, например. каждый день.

Ответ 3

Это должно помочь. Найдите раздел RollingFileAppender