using Tiobon.Core.Common; using Tiobon.Core.Serilog.Sink; using Serilog; using Serilog.Sinks.PeriodicBatching; namespace Tiobon.Core.Serilog.Configuration; public static class LogBatchingSinkConfiguration { public static LoggerConfiguration WriteToLogBatching(this LoggerConfiguration loggerConfiguration) { if (!AppSettings.app("AppSettings", "LogToDb").ObjToBool()) { return loggerConfiguration; } var exampleSink = new LogBatchingSink(); var batchingOptions = new PeriodicBatchingSinkOptions { BatchSizeLimit = 500, Period = TimeSpan.FromSeconds(1), EagerlyEmitFirstEvent = true, QueueLimit = 10000 }; var batchingSink = new PeriodicBatchingSink(exampleSink, batchingOptions); return loggerConfiguration.WriteTo.Sink(batchingSink); } }