【发布时间】:2018-01-16 14:43:27
【问题描述】:
我正在使用 Serilog,并且在关闭 Actor 系统时注意到,在删除像 Serilog 这样的自定义记录器之前,并非所有未处理的日志消息都已处理。因此,一堆消息不再发送到 Serilog 接收器,而是在默认记录器中结束。
作为一种解决方法,我在 ReceiveAsync 处理程序中使用它:
await Task.Delay(TimeSpan.FromSeconds(5));
Context.System.Terminate();
我可能可以在非异步处理程序或 FSM OnTermination 处理程序中使用 AutoResetEvent 或类似名称。
上面的解决方法只是一种解决方法。有没有办法刷新日志?请注意,我在关闭 Actor 系统之前已经刷新了 Serilog,这部分工作正常。
【问题讨论】: