Serilog.Sinks.PeriodicBatching 4.1.1-dev-00845

Serilog.Sinks.PeriodicBatching Build status NuGet Version

A wrapper for Serilog sinks that asynchronously emits events in batches, useful when logging to a slow and/or remote target.

Getting started

Sinks that, for performance reasons, need to emit events in batches, can be implemented using PeriodicBatchingSink from this package.

First, install the package into your Sink project:

dotnet add package Serilog.Sinks.PeriodicBatching

Then, instead of implementing Serilog's ILogEventSink, implement IBatchedLogEventSink in your sink class:

class ExampleBatchedSink : IBatchedLogEventSink
{
    public async Task EmitBatchAsync(IEnumerable<LogEvent> batch)
    {
        foreach (var logEvent in batch)
            Console.WriteLine(logEvent);
    }
    
    public Task OnEmptyBatchAsync() { }
}

Finally, in your sink's configuration method, construct a PeriodicBatchingSink that wraps your batched sink:

public static class LoggerSinkExampleConfiguration
{
    public static LoggerConfiguration Example(this LoggerSinkConfiguration loggerSinkConfiguration)
    {
        var exampleSink = new ExampleBatchedSink();
        
        var batchingOptions = new PeriodicBatchingSinkOptions
        {
            BatchSizeLimit = 100,
            Period = TimeSpan.FromSeconds(2),
            EagerlyEmitFirstEvent = true,
            QueueLimit = 10000
        };
        
        var batchingSink = new PeriodicBatchingSink(exampleSink, batchingOptions);
        
        return loggerSinkConfiguration.Sink(batchingSink);
    }
}

Showing the top 20 packages that depend on Serilog.Sinks.PeriodicBatching.

Packages Downloads
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
37
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
38
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
40
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
41
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
43
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
45
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
48
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
52
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
83
Serilog.Sinks.Http
Serilog event sink that sends HTTP POST requests over the network.
37
Serilog.Sinks.Http
Serilog event sink that sends HTTP POST requests over the network.
38
Serilog.Sinks.Http
Serilog event sink that sends HTTP POST requests over the network.
41
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
37
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
40
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
42
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
337

.NET Framework 4.6.2

.NET 6.0

.NET Standard 2.0

Version Downloads Last updated
5.0.1-dev-00860 33 07/18/2024
5.0.0 43 07/22/2024
5.0.0-dev-00855 36 07/23/2024
4.1.2-dev-00851 31 07/23/2024
4.1.1 40 07/23/2024
4.1.1-dev-00845 33 07/23/2024
4.1.0 35 07/23/2024
4.1.0-dev-00840 37 07/23/2024
4.0.2-dev-00838 34 07/23/2024
4.0.1 38 07/23/2024
4.0.1-dev-00832 31 07/23/2024
4.0.0 46 07/23/2024
4.0.0-dev-00824 33 07/23/2024
4.0.0-dev-00821 31 07/23/2024
3.1.1-dev-00804 36 07/21/2024
3.1.1-dev-00801 34 07/23/2024
3.1.0 39 07/23/2024
3.1.0-dev-00796 33 07/23/2024
3.0.0 45 07/23/2024
3.0.0-dev-00792 55 07/23/2024
2.3.1 29 07/23/2024
2.3.1-dev-00785 28 07/23/2024
2.3.1-dev-00780 43 07/23/2024
2.3.1-dev-00776 27 07/23/2024
2.3.1-dev-00774 46 07/23/2024
2.3.0 130 02/04/2024
2.3.0-dev-00765 34 07/23/2024
2.3.0-dev-00762 27 07/23/2024
2.3.0-dev-00760 33 07/23/2024
2.2.1-dev-00758 33 07/23/2024
2.2.1-dev-00755 34 07/23/2024
2.2.0 38 07/23/2024
2.2.0-dev-00748 31 07/23/2024
2.2.0-dev-00740 40 07/22/2024
2.1.1 40 07/21/2024
2.1.1-dev-00732 36 07/23/2024
2.1.1-dev-00729 37 07/23/2024
2.1.1-dev-00725 31 07/23/2024
2.1.0 42 07/23/2024
2.1.0-dev-00720 24 07/23/2024
2.0.2-dev-00719 33 07/23/2024
2.0.1 35 07/23/2024
2.0.1-dev-00714 29 07/23/2024
2.0.0 27 07/23/2024
2.0.0-rc-707 38 07/23/2024
2.0.0-rc-705 34 07/18/2024
2.0.0-beta-702 31 07/18/2024
2.0.0-beta-700 36 07/18/2024
2.0.0-beta-519 37 07/18/2024
2.0.0-beta-516 37 07/18/2024
2.0.0-beta-513 25 07/18/2024
2.0.0-beta-511 28 07/18/2024
2.0.0-beta-509 36 07/18/2024
2.0.0-beta-507 34 07/18/2024
2.0.0-beta-505 37 07/18/2024
2.0.0-beta-502 36 07/18/2024
2.0.0-beta-499 37 07/18/2024
2.0.0-beta-495 26 07/18/2024
2.0.0-beta-494 32 07/18/2024
2.0.0-beta-493 30 07/18/2024
2.0.0-beta-487 33 07/18/2024
2.0.0-beta-486 38 07/18/2024
2.0.0-beta-479 30 07/18/2024
2.0.0-beta-478 32 07/18/2024
2.0.0-beta-465 31 07/18/2024