Files
Api/DouyinApi.Serilog/Configuration/LogBatchingSinkConfiguration.cs

31 lines
885 B
C#
Raw Permalink Normal View History

2025-11-04 21:09:16 +08:00
using DouyinApi.Common;
using DouyinApi.Serilog.Sink;
using Serilog;
using Serilog.Sinks.PeriodicBatching;
namespace DouyinApi.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);
}
}