我正在使用 Serilog 和 Serilog.Sinks.Seq 将事件发送到 Seq。一些事件到达 Seq 日志,但有些事件丢失。
如何确保在执行 Lambda 函数期间发送的所有事件都到达 Seq?
我正在使用 Serilog 和 Serilog.Sinks.Seq 将事件发送到 Seq。一些事件到达 Seq 日志,但有些事件丢失。
如何确保在执行 Lambda 函数期间发送的所有事件都到达 Seq?
Serilog 出于性能原因缓冲事件,因此如果应用程序突然退出,它可能无法按照您的建议转发所有日志条目。
在您的 lambda 函数完成之前,请尝试调用Log.CloseAndFlush();
以确保在应用程序退出之前处理任何缓冲的事件。如果您使用 ILogger 而不是静态 Log 类,那么您将需要处置 ILogger 而不是调用CloseAndFlush()
.
如果您有兴趣, Serilog 的记录器生命周期页面会提供更多详细信息。