Итак, главный вопрос - я просто хочу удалить архивные журналы, которые старше 30 дней, и мой файл журнала должен иметь максимальный размер 100 МБ.
В руководстве сказано, что:
Архивация файлов на основе времени Файлы журналов также могут автоматически архивироваться на основе времени.Эта конфигурация будет архивировать файл в начале каждого дня и будет использовать динамическое именование файлов, поэтому файл журнала за предыдущий день всегда можно найти в архивах // log.0.txt, журнал за два дня назад находится в архивах //log.1.txt и так далее.В этой конфигурации будет храниться не более 7 архивных файлов, поэтому журналы старше одной недели будут автоматически удаляться.
<target name="file" xsi:type="File"
layout="${longdate} ${logger} ${message}"
fileName="${basedir}/logs/logfile.txt"
archiveFileName="${basedir}/archives/log.{#}.txt"
archiveEvery="Day"
archiveNumbering="Rolling"
maxArchiveFiles="7"
concurrentWrites="true"
keepFileOpen="false"
encoding="iso-8859-2" />
Но это не работает с ограничениями размера файлов.Он генерирует 7 файлов и очищает каждый раз, когда генерируется новый файл размером 100 МБ.Я сделал некоторый тест, который генерирует файлы журнала каждые 5 минут.Итак, возможно ли учитывать ограничения на размер файла для временной архивации файлов?
Мой код:
<target xsi:type="File"
name="InfoFile"
fileName="logs/log.txt"
layout="[${date:yyyy-MM-dd}]"
archiveAboveSize="104857600"
archiveEvery="Day"
archiveNumbering="Rolling"
archiveFileName="logs/archives/log.{###}.txt"
archiveDateFormat="yyyyMMdd-hhmmss"
maxArchiveFiles="30"
enableFileDelete="true" />