Serilog - последний файл НЕ должен иметь метку времени - PullRequest
2 голосов
/ 26 марта 2020

В настоящее время мы используем Serilog в качестве каркаса ведения журнала в консольном приложении. NET Core 3.1. Возможно ли, что только к последнему файлу НЕ добавлена ​​временная метка / номер. Это означает, что Serilog должен будет обновить файл, как только будет создан новый файл журнала.

Пример со следующей конфигурацией:

.WriteTo.File(
         "application.log", 
         outputTemplate: "some example output template", 
         fileSizeLimitBytes: 1000, 
         rollOnFileSizeLimit: true)

Теперь должны быть созданы следующие файлы / обновлено. Также я напишу идентификатор в скобках (#) для этого примера, чтобы вы могли легче их различать:


Каталог после создания 1-го файла журнала: application.log ( 0)

Каталог после создания 2-го файла журнала: application.log (1) | application_1.log (0)

Каталог после создания 3-го файла журнала: application.log (2) | application_1.log (0) | application_2.log (1)


Как видите, последний файл всегда должен называться «application.log», в то время как имена других файлов должны обновляться с некоторой цифрой / отметкой времени.

Что происходит, но не должно происходить:


Каталог после создания 1-го файла журнала: application.log (0)

Каталог после создания 2-го лог-файла: application_1.log (1) | application.log (0)

Каталог после создания 3-го файла журнала: application_2.log (2) | application_1.log (1) | application.log (0)


Как видно, первый созданный файл всегда называется «application.log», но не последний созданный.

Is Есть ли возможность получить первое поведение с Serilog? Кто-то сказал мне, что такое поведение может быть достигнуто с помощью журнала 4net, но я не знаю, правда ли это, и если возможно, я бы хотел придерживаться Serilog.

И, пожалуйста, не спрашивайте меня по причинам , потому что я их не знаю (это запрос клиента). Также заранее благодарю за каждый полезный ответ на этот странный вопрос! :)

1 Ответ

2 голосов
/ 27 марта 2020

К сожалению, это известная проблема в Serilog.Sinks.File, которая проистекает из людей, мигрирующих из журнала 4net или из-за того, что NLog хочет, чтобы их сыр оставался неподвижным.

Если бы я должен был сделать предсказание заключается в том, что такая функция вряд ли попадет в официальный приемник Serilog.Sinks.File в ближайшее время, поскольку это (волнистые переименования) является по сути хрупким.

Я полагаю, что существует обходной путь, связанный с этой проблемой.

...