Почему некоторые события Serilog от AWS lambda не поступают в Seq?

Я использую Serilog и Serilog.Sinks.Seq для отправки событий в Seq. Некоторые события поступают в журнал Seq, но некоторые отсутствуют.

Как я могу гарантировать, что все события, отправленные во время выполнения моей лямбда-функции, поступают в Seq?

1 ответ

Решение

Serilog буферизует события по соображениям производительности, поэтому, если приложение внезапно завершает работу, оно может не перенаправить все записи журнала, как вы предложили.

Прежде чем ваша лямбда-функция завершится, попробуйте вызвать Log.CloseAndFlush();чтобы гарантировать обработку любых буферизованных событий до выхода из приложения. Если вы используете ILogger вместо статического класса журнала, вам нужно будет удалить ILogger вместо вызова CloseAndFlush().

Если вам интересно, на странице « Жизненный цикл логгеров» компании Serilog можно найти более подробную информацию.

Другие вопросы по тегам