datalust / serilog-sinks-seq

A Serilog sink that writes events to the Seq structured log server
https://datalust.co/seq
Apache License 2.0
225 stars 50 forks source link

Update `Serilog.Sinks.PeriodicBatching` and other dependencies #206

Closed nblumhardt closed 8 months ago

nblumhardt commented 8 months ago

I've been working to track down the origin of an unobserved task exception that was reported to us. Unfortunately the stack trace I have doesn't offer many clues, but this did lead me on a journey through the internals of Serilog.Sinks.PeriodicBatching, our most substantial dependency, and the very old, incrementally-built implementation there had a number of weaknesses that could explain the issue.

This led to a rewrite of PeriodicBatching using the primitives available in modern framework versions - good Task/async support everywhere, and System.Threading.Channels - and without the obscuring clutter of conditional code required to support now-obsolete platforms.

The new PeriodicBatching needs some solid dogfooding and downstream testing, so that's this PR :-)

There are no known breaking changes, but PeriodicBatching does include breaking changes that may affect other sinks being used in the same apps (details here), hence a major version bump.

Fixes #205