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.
76
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
77
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
78
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
79
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
80
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
83
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
85
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
93
Serilog.Sinks.Http
A Serilog sink sending log events over HTTP.
120
Serilog.Sinks.Http
Serilog event sink that sends HTTP POST requests over the network.
79
Serilog.Sinks.Http
Serilog event sink that sends HTTP POST requests over the network.
82
Serilog.Sinks.Http
Serilog event sink that sends HTTP POST requests over the network.
89
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
77
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
78
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
81
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
85
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
88
Serilog.Sinks.PostgreSQL
Serilog sink for writing to PostgreSQL table
619

.NET Framework 4.6.2

.NET 6.0

.NET Standard 2.0

Version Downloads Last updated
5.0.1-dev-00860 72 07/18/2024
5.0.0 83 07/22/2024
5.0.0-dev-00855 76 07/23/2024
4.1.2-dev-00851 71 07/23/2024
4.1.1 82 07/23/2024
4.1.1-dev-00845 71 07/23/2024
4.1.0 74 07/23/2024
4.1.0-dev-00840 72 07/23/2024
4.0.2-dev-00838 76 07/23/2024
4.0.1 75 07/23/2024
4.0.1-dev-00832 72 07/23/2024
4.0.0 76 07/23/2024
4.0.0-dev-00824 66 07/23/2024
4.0.0-dev-00821 63 07/23/2024
3.1.1-dev-00804 76 07/21/2024
3.1.1-dev-00801 73 07/23/2024
3.1.0 77 07/23/2024
3.1.0-dev-00796 67 07/23/2024
3.0.0 77 07/23/2024
3.0.0-dev-00792 97 07/23/2024
2.3.1 65 07/23/2024
2.3.1-dev-00785 62 07/23/2024
2.3.1-dev-00780 89 07/23/2024
2.3.1-dev-00776 65 07/23/2024
2.3.1-dev-00774 80 07/23/2024
2.3.0 180 02/04/2024
2.3.0-dev-00765 70 07/23/2024
2.3.0-dev-00762 65 07/23/2024
2.3.0-dev-00760 71 07/23/2024
2.2.1-dev-00758 67 07/23/2024
2.2.1-dev-00755 68 07/23/2024
2.2.0 77 07/23/2024
2.2.0-dev-00748 70 07/23/2024
2.2.0-dev-00740 77 07/22/2024
2.1.1 73 07/21/2024
2.1.1-dev-00732 75 07/23/2024
2.1.1-dev-00729 79 07/23/2024
2.1.1-dev-00725 66 07/23/2024
2.1.0 82 07/23/2024
2.1.0-dev-00720 59 07/23/2024
2.0.2-dev-00719 67 07/23/2024
2.0.1 81 07/23/2024
2.0.1-dev-00714 72 07/23/2024
2.0.0 66 07/23/2024
2.0.0-rc-707 76 07/23/2024
2.0.0-rc-705 71 07/18/2024
2.0.0-beta-702 70 07/18/2024
2.0.0-beta-700 70 07/18/2024
2.0.0-beta-519 65 07/18/2024
2.0.0-beta-516 85 07/18/2024
2.0.0-beta-513 66 07/18/2024
2.0.0-beta-511 69 07/18/2024
2.0.0-beta-509 69 07/18/2024
2.0.0-beta-507 69 07/18/2024
2.0.0-beta-505 73 07/18/2024
2.0.0-beta-502 75 07/18/2024
2.0.0-beta-499 74 07/18/2024
2.0.0-beta-495 66 07/18/2024
2.0.0-beta-494 70 07/18/2024
2.0.0-beta-493 70 07/18/2024
2.0.0-beta-487 67 07/18/2024
2.0.0-beta-486 77 07/18/2024
2.0.0-beta-479 65 07/18/2024
2.0.0-beta-478 73 07/18/2024
2.0.0-beta-465 68 07/18/2024