【发布时间】:2017-10-26 16:34:05
【问题描述】:
我有一个 Windows 服务,它处理长时间运行的任务,并且除非强制关闭(即计算机关闭),否则永远不会关闭。我想在 Windows 服务启动和运行的整个过程中保持同一个 Serilog 实例处于活动状态(出于性能原因)。
但是,我只看到 Dispose() 调用后的日志,如下所示。
var logger = new LoggerConfiguration()
.WriteTo.Seq("http://localhost:5341")
.CreateLogger();
logger.ForContext("TestContext", new { Machine = "TSTDB2" }, true).Information("Test");
logger.Dispose();
我不介意延迟几秒钟,但必须等到 Serilog 实例被释放后才对我有用。任何解决方案将不胜感激。
【问题讨论】:
-
进程在你的测试中退出,还是你在长时间运行的进程中尝试过?您是否有机会以最小的
Program.cs复制重构您的场景?您是在创建多个记录器实例,还是将记录器分配给某处的静态字段? (HTH,只是想产生想法。)
标签: serilog seq seq-logging