#serilog
Вопрос:
Я использую serilog и указываю дату как часть своего имени файла. Это простой способ получить доступ к файлу. В настоящее время я проверяю ночные события, и я просто выбираю последний файл утром.
Теперь я хочу продержаться всего 7 дней. Это было сохранено для filecountlimit. Однако это тоже работает не так, как я хочу, так как это может привести к проверке этого конкретного имени файла.
Как я могу это сделать? (У меня была своя собственная система регистрации, которая удаляла файлы старше недели) Где описаны все свойства serilog? Мне не хватает их общего обзора.
//Add Serilog
string logFileName = HostingEnvironment.MapPath(@"~/new_" DateTime.Now.ToString("yyyyMMdd") ".log");
Log.Logger = new LoggerConfiguration()
.WriteTo.File(
path: logFileName,
retainedFileCountLimit: 7,
shared: true,
rollingInterval: RollingInterval.Day,
rollOnFileSizeLimit: true,
fileSizeLimitBytes: 123456,
flushToDiskInterval: TimeSpan.FromSeconds(5))
.CreateLogger();
Log.Information("Starting Serilog #1");
Ответ №1:
Приемник файлов автоматически включает дату в имя файла — не включайте DateTime.Now
ее в имя файла, и пусть об этом позаботится Serilog, и вы получите ожидаемое сохранение.
var log = new LoggerConfiguration()
.WriteTo.File
(
"new_.txt", // <<<<<<<<<<<<<<<<<<<<<<
rollingInterval: RollingInterval.Day,
retainedFileCountLimit: 7,
// ...
)
.CreateLogger();
Это добавит период времени к имени файла, создав набор файлов, подобный:
new_20180631.txt
new_20180701.txt
new_20180702.txt
Документация приемника файлов находится в репозитории на GitHub.