我最近遇到了Serilog在Web应用程序中使用的问题。该问题是由Serilogs默认行为导致的,当登录到数据库时不立即插入日志,而是将其插入接收器并等待一定时间或一些日志,然后再将它们插入数据库。在我看来,这是一种异步行为。
我想要做的是配置我的记录器以将日志插入数据库而无需等待(同步)。
我发现的解决方案是:
var logger = new LoggerConfiguration()
.WriteTo
.MSSqlServer(connectionString,
tableName,
columnOptions: columnOptions,
autoCreateSqlTable: true,
period: new TimeSpan(0, 0, 0))
.CreateLogger();
,正如您所看到的,意味着我等待Timespan(0,0,0)的一段时间,在“刷新接收器”之前为0。
有没有人找到替代解决方案? 上述解决方案是否有任何理由不是“最佳实践”?
提前谢谢!