This repository has been archived by the owner on Jun 1, 2024. It is now read-only.
Update to Serilog.Sinks.PeriodicBatching
v4.0 and break dependency on deprecated inheritance API
#579
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What issue does this PR address?
Inheriting from
PeriodicBatchingSink
has been deprecated for a few versions, and with v4 of that sink is no longer supported.Does this PR introduce a breaking change?
Yes, it's no longer possible to cast
ElasticsearchSink
toPeriodicBatchingSink
. The forced major version upgrades forSerilog.Sinks.PeriodicBatching
andSerilog
also constitute a major-version-bump-worthy change.Practically, no -
ElasticsearchSink
still supportsILogEventSink
andIDisposable
as it did before.Please check if the PR fulfills these requirements
Unit Tests for the changes have been added (for bug fixes / features)N/AOther information:
The newer
PeriodicBatchingSink
implementation supportsIAsyncDisposable
, and in doing so avoids a rare but theoretically-possible shutdown hang. I've added anet6.0
target and implemented forwarding ofIAsyncDisposable.DisposeAsync()
to the internal wrapped sink to make this accessible. Happy to back this out if it conflicts with other goals/intentions here.See also serilog/serilog-sinks-periodicbatching#69