@Oblomov95

Как удалять старые логи(NLog)?

Не получается удалять старые логи, кто-нибудь знает в чём может быть проблема?
<target
    name="infoLog"
    xsi:type="File"
    fileName="${logDir}/info.{#}.txt"
    layout="${info}"
    archiveFileName="${logDir}/Log.info.{#}.txt"
    archiveEvery="day"
    archiveNumbering="Rolling"
    maxArchiveFiles="2"
    concurrentWrites="true" />

 <target
  name="errorLog"
  xsi:type="File"
  fileName="${logDir}/error.{#}.txt"
  layout="${error}"
  archiveFileName="${logDir}/Log.error.{#}.txt"
  archiveEvery="Day"
  archiveNumbering="Rolling"
  maxArchiveFiles="2"
  concurrentWrites="true" />
  • Вопрос задан
  • 1553 просмотра
Решения вопроса 1
@patutin
Вы сделали, почти все правильно. Но,
1. Для infoLog'а указали archiveEvery="day", а нужно с большой буквы.
2. maxArchiveFiles отвечает за количество архивов (это файлы, которые создаются после заполнения текущего лога).

Вот для примера target:
<target
     name="infoLog"
     xsi:type="File"
     fileName="${logDir}/Log.info.txt"     
     archiveFileName="${logDir}/Log.info.{#}.txt"
     archiveEvery="Minute"
     archiveNumbering="Rolling"
     maxArchiveFiles="2"
     concurrentWrites="true" />

И код который пишет в лог раз в 20 секунд:
for (int i = 0; i < 100; i++)
            {
                logger.Info("{0} Log Test", i);
                Thread.Sleep(TimeSpan.FromSeconds(20));
            }


В папке с логами тогда всегда будут 3 файла:
Log.info.txt
Log.info.0.txt
Log.info.1.txt
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы