Я использую NLog для выполнения некоторых протоколирования, и у меня возникла проблема с архивированием и именами файлов.
Я создаю конфигурации ведения журнала в коде (я пишу обертку, чтобы выставить некоторые конкретные функции), и у меня есть объект FileTarget
, созданный с помощью этих параметров:
this._fileTarget.FileName = "${date:format=yyyy-MM-dd hh.mm.ss}.log";
this._fileTarget.ArchiveAboveSize = Math.Pow(1024, 2) * 5; //5MB
this._fileTarget.ArchiveNumbering = ArchiveNumberingMode.Date;
this._fileTarget.ArchiveEvery = FileArchivePeriod.Day;
this._fileTarget.ArchiveDateFormat = "yyyy-MM-dd hh.mm.ss";
Я не уверен, почему NLog сделал это так, но этот макет имени файла будет создавать новый файл журнала каждую секунду вместо того, чтобы просто использовать имя файла до тех пор, пока период архива не закончится.
Я добавил кэшированную целевую оболочку к имени файла как таковой:
this._fileTarget.FileName = "${cached:cached=true:inner=${date:format=yyyy-MM-dd hh.mm.ss}.log}";
Но все, что покупает меня, - это имя файла, которое теперь никогда не изменяется и выглядит так, когда оно архивировано
2014-12-03 12.00.00.2014-12-03 12.00.00.log
2014-12-03 12.00.00.2014-12-03 12.10.00.log
etc...
Можно ли указать NLog только архивировать файлы на основе размера и даты файла и игнорировать нумерацию архивов и форматирование даты? Я пытаюсь создать файлы журналов, имя которых является меткой времени, когда оно было создано, где новые файлы создаются только определенного размера или каждый день.
Edit: Это то, что я пытаюсь добиться:
При запуске приложения
- Создает файл журнала с именем файла в формате
"yyyy-MM-dd hh.mm.ss".txt
с использованием текущей метки времени (Пример → "2014-04-29 11:11:11.txt" ) - Приложение регистрируется в этом файле некоторое время, пока оно не будет
- Становится слишком большим (над определенным лимитом) или
- Время архива истекает (в моем случае это один день)
- Затем регистратор прекращает запись в файл, созданный в 1. ( "2014-04-29 11.11.11.txt" ) и не переименовывает его или иным образом не добавляет к нему последовательные/скользящие номера или форматирование даты.
- Повторяйте шаги 1-3 до конца времени.
Оставив меня с папкой журнала, которая выглядит так:
Logs
|
|> 2014-12-10 12:50:50.txt (1024 kb)
|> 2014-12-10 12:50:55.txt (1020 kb)
|> 2014-12-10 12:51:01.txt (1024 kb)
|> 2014-12-10 12:51:10.txt (1003 kb)
|> 2014-12-10 12:51:20.txt (400 kb) <-The currently active log file.