Как я могу сохранить дополнительные сообщения, которые обычно исключаются Loglevel в случае ошибок - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть базовый c сценарий использования serilog: регистрация сообщений из веб-приложения. В производственном процессе я установил для уровня журнала значение «информация».

Теперь мой вопрос: возможно ли записать последние ~ 100 сообщений отладки / трассировки в журнал после возникновения ошибки, чтобы у меня было короткое замыкание? история подробных сообщений до возникновения ошибки. Это сохранит мой журнал чистым и даст мне достаточно информации для отслеживания ошибок.

Я создал такой механизм лет go для другого приложения / каркаса ведения журнала, но мне интересно, если это уже возможно с Serilog .

Если нет, то где в конвейере будет место для реализации такой логики c.

1 Ответ

0 голосов
/ 07 февраля 2020

Это не то, что Serilog имеет из коробки, но это можно реализовать, написав пользовательский приемник , который обернет все остальные приемники и кэширует самые последние сообщения ~ 100 Debug и перенаправляет их в приемники при появлении сообщения Error.

Возможно, вы захотите взглянуть на код Serilog.Sinks.Asyn c для вдохновения, поскольку он показывает вам способ упаковки нескольких раковин в одну.

...