В вашей конфигурации есть проблема с поминутным архивированием.
NLog начинает заменять старый файл, потому что ваш формат файла - yyyy-MM-DD
. Правильная конфигурация для достижения поминутного уровня, добавьте код ниже.
<target name="kFile" xsi:type="File"
layout="${longdate} ${logger} ${message}${exception:format=ToString}"
fileName="${basedir}/LOG/${date:format=yyyy-MM-dd}.log"
archiveFileName="${basedir}/LOG/OLD_LOGS/{#}.log"
archiveDateFormat="yyyy-MM-dd-mm"
archiveNumbering="Date"
archiveEvery="Minute"
/>
Формат изменен на yyyy-MM-dd-mm
.
Это изменение создано ниже файлов в моей папке
.
├── ...
├── LOG
│ ├── 2020-05-30.log
│ ├── OLD_LOGS
│ ├── 2020-05-30-01.log
│ └── 2020-05-30-02.log
└── ...
Я проверил с той же конфигурацией, что и ваша, и результат был
Таким образом, функция архивирования NLog не работает так, как вы этого хотите. Он просто помещает последний файл месяца в папку архива, а не все.
Итак, вы должны настроить NLog для архивирования файлов каждый день и установить максимальное количество файлов примерно на 365, чтобы хранить их в течение одного года. Примените следующую конфигурацию:
<target name="kFile" xsi:type="File"
layout="${longdate} ${logger} ${message}${exception:format=ToString}"
fileName="${basedir}/LOG/${date:format=yyyy-MM-dd}.log"
archiveFileName="${basedir}/LOG/OLD_LOGS/{#}.log"
archiveDateFormat="yyyy-MM-dd"
archiveNumbering="Date"
archiveEvery="Day"
maxArchiveFiles="365"
/>
Таким образом вы будете получать по одному файлу в день, и этот файл будет каждый день перемещаться в папку архива. Архив будет хранить файл в течение одного года. Однако вы можете просмотреть максимальный архивный файл. Потому что это может увеличить размер папки в зависимости от того, сколько вы регистрируете.