Serilog.Sinks.PeriodicBatching 4.1.2-dev-00851

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.Elasticsearch
Package Description
69
Serilog.Sinks.Elasticsearch
Package Description
73
Serilog.Sinks.Elasticsearch
Package Description
74
Serilog.Sinks.Elasticsearch
Package Description
79
Serilog.Sinks.Elasticsearch
Package Description
88
Serilog.Sinks.Elasticsearch
Package Description
89
Serilog.Sinks.Elasticsearch
Package Description
90
Serilog.Sinks.Elasticsearch
Package Description
92
Serilog.Sinks.Elasticsearch
Package Description
99
Serilog.Sinks.Elasticsearch
Package Description
100
Serilog.Sinks.Elasticsearch
Package Description
132
Serilog.Sinks.Elasticsearch
Package Description
1,933
Serilog.Sinks.Elasticsearch
Package Description
3,244
Serilog.Sinks.Elasticsearch
Package Description
25,452
Serilog.Sinks.Elasticsearch
Serilog sink for Elasticsearch
75
Serilog.Sinks.Elasticsearch
Serilog sink for Elasticsearch
78
Serilog.Sinks.Elasticsearch
Serilog.Sinks.Elasticsearch
109
Serilog.Sinks.Elasticsearch
Serilog.Sinks.Elasticsearch
112
Serilog.Sinks.Elasticsearch
The perfect way for .NET apps to write structured log events to Elasticsearch 2.x.
76

.NET Framework 4.6.2

.NET 6.0

.NET Standard 2.0

Version Downloads Last updated
5.0.1-dev-00860 38 07/04/2024
5.0.0 37 06/07/2024
5.0.0-dev-00855 27 06/08/2024
4.1.2-dev-00851 30 06/01/2024
4.1.1 29 05/31/2024
4.1.1-dev-00845 35 05/24/2024
4.1.0 47 05/21/2024
4.1.0-dev-00840 34 05/21/2024
4.0.2-dev-00838 31 05/21/2024
4.0.1 42 03/15/2024
4.0.1-dev-00832 31 03/16/2024
4.0.0 43 03/07/2024
4.0.0-dev-00824 32 03/10/2024
4.0.0-dev-00821 30 03/10/2024
3.1.1-dev-00804 49 06/23/2023
3.1.1-dev-00801 56 10/27/2022
3.1.0 87 10/27/2022
3.1.0-dev-00796 49 09/23/2022
3.0.0 77 09/22/2022
3.0.0-dev-00792 64 09/24/2022
2.3.1 60 07/11/2022
2.3.1-dev-00785 65 09/12/2022
2.3.1-dev-00780 74 09/12/2022
2.3.1-dev-00776 52 09/12/2022
2.3.1-dev-00774 61 09/21/2022
2.3.0 75 07/29/2022
2.3.0-dev-00765 45 09/12/2022
2.3.0-dev-00762 65 06/30/2022
2.3.0-dev-00760 58 09/23/2022
2.2.1-dev-00758 85 09/21/2022
2.2.1-dev-00755 123 09/12/2022
2.2.0 52 09/12/2022
2.2.0-dev-00748 67 09/22/2022
2.2.0-dev-00740 57 09/12/2022
2.1.1 25,961 06/27/2022
2.1.1-dev-00732 48 09/17/2022
2.1.1-dev-00729 68 09/21/2022
2.1.1-dev-00725 56 09/12/2022
2.1.0 46 09/17/2022
2.1.0-dev-00720 45 09/12/2022
2.0.2-dev-00719 47 09/22/2022
2.0.1 50 09/12/2022
2.0.1-dev-00714 57 09/12/2022
2.0.0 98 09/25/2022
2.0.0-rc-707 38 09/12/2022
2.0.0-rc-705 46 10/27/2022
2.0.0-beta-702 49 09/12/2022
2.0.0-beta-700 67 09/12/2022
2.0.0-beta-519 61 09/17/2022
2.0.0-beta-516 50 09/12/2022
2.0.0-beta-513 92 09/12/2022
2.0.0-beta-511 71 09/12/2022
2.0.0-beta-509 71 09/12/2022
2.0.0-beta-507 132 09/12/2022
2.0.0-beta-505 112 09/12/2022
2.0.0-beta-502 41 09/24/2022
2.0.0-beta-499 68 09/12/2022
2.0.0-beta-495 84 09/12/2022
2.0.0-beta-494 65 07/03/2022
2.0.0-beta-493 87 09/22/2022
2.0.0-beta-487 88 09/12/2022
2.0.0-beta-486 75 09/12/2022
2.0.0-beta-479 68 09/22/2022
2.0.0-beta-478 61 09/12/2022
2.0.0-beta-465 56 09/12/2022