gpt4 book ai didi

logging - 如何在终止参与者系统之前刷新日志记录?

转载 作者:行者123 更新时间:2023-12-02 04:31:33 25 4
gpt4 key购买 nike

我正在使用 Serilog,并且在关闭 Actor 系统时注意到,在删除像 Serilog 这样的自定义记录器之前,并非所有未处理的日志消息都已处理。因此,一堆消息不再发送到 Serilog 接收器,而是最终在默认记录器中。

作为一种解决方法,我在 ReceiveAsync 中使用它。处理程序:

await Task.Delay(TimeSpan.FromSeconds(5));
Context.System.Terminate();

我大概可以使用 AutoResetEvent或类似的非异步处理程序或 FSM OnTermination处理程序。

上面的解决方法就是这样,一种解决方法。有没有办法刷新日志?请注意,我在关闭 Actor 系统之前已经刷新了 Serilog,这部分工作正常。

最佳答案

如果您使用全局 Log上课,调用Log.CloseAndFlush()终止前。

如果您使用 IoC 容器或类似容器来管理 Logger单独的实例,未分配给全局 Log.Logger属性,确保容器(或您的应用程序代码)Dispose() s 终止前的记录器实例。

关于logging - 如何在终止参与者系统之前刷新日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48283802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com