Почему некоторые события Serilog от AWS lambda не поступают в Seq?
Я использую Serilog и Serilog.Sinks.Seq для отправки событий в Seq. Некоторые события поступают в журнал Seq, но некоторые отсутствуют.
Как я могу гарантировать, что все события, отправленные во время выполнения моей лямбда-функции, поступают в Seq?
1 ответ
Serilog буферизует события по соображениям производительности, поэтому, если приложение внезапно завершает работу, оно может не перенаправить все записи журнала, как вы предложили.
Прежде чем ваша лямбда-функция завершится, попробуйте вызвать
Log.CloseAndFlush();
чтобы гарантировать обработку любых буферизованных событий до выхода из приложения. Если вы используете ILogger вместо статического класса журнала, вам нужно будет удалить ILogger вместо вызова
CloseAndFlush()
.
Если вам интересно, на странице « Жизненный цикл логгеров» компании Serilog можно найти более подробную информацию.