Releases: logtide-dev/logtide-dotnet
Releases · logtide-dev/logtide-dotnet
Release list
v0.9.4
Added
LogTideTraceparentHandler: aDelegatingHandlerinjecting the W3Ctraceparentheader on outboundHttpClientrequests from the currentLogTideScope(no-op without a scope or when the header is already set).
Full Changelog: v0.9.3...v0.9.4
v0.9.3
Added
ClientOptions.BeforeSend: hook called before buffering — mutate the entry or returnnullto drop it. A throwing hook never loses the entry.ClientOptions.SampleRate(0.0–1.0, default 1.0): per-entry sampling applied afterBeforeSend.
Full Changelog: v0.9.2...v0.9.3
v0.9.2
Changed
- Permanent client errors (4xx except 408/429) are no longer retried: the batch is dropped after the first attempt.
ApiExceptiongainsIsRetryableandRetryAfterMs. - A
Retry-Afterheader on429/503responses now overrides the computed backoff delay.
Full Changelog: v0.9.1...v0.9.2
v0.9.1
Added
- Every entry now carries
metadata.sdk = {"name": "logtide-dotnet", "version": ...}(caller-providedsdkkey wins).
Full Changelog: v0.9.0...v0.9.1
v0.9.0
Added
- Microsoft.Extensions.Logging provider:
LogTideLoggerProvider+ILoggingBuilder.AddLogTide(...)(explicit client or DI-resolved). RoutesILogger<T>output through the client: structured state values andBeginScopevalues become metadata, levels are mapped (Trace/Debug→ debug,Critical→ critical), exceptions attach in the canonical structured format. LogTideClient.SerializeException(Exception)is now public.
Changed
- Breaking: exceptions are now serialized under the canonical
metadata.exceptionkey (wasmetadata.error) using the platform's StructuredException contract:type,message,language: "csharp", structuredstacktraceframes,raw, and a nestedcausechain capped at depth 10. Server-side error grouping and fingerprinting now work for .NET exceptions. The Serilog sink uses the same serializer.
Full Changelog: v0.8.3...v0.9.0
v0.8.3
What's New
Full SDK refactor with enterprise features:
Added
- W3C traceparent distributed tracing with AsyncLocal
LogTideScope - Span tracking with OTLP export (
StartSpan/FinishSpan) - Breadcrumbs ring buffer attached to scopes
- Composable transport layer —
ILogTransport,ISpanTransport,BatchTransport ILogTideClientinterface for DI and testability- Integration system with
GlobalErrorIntegration - Serilog sink — new
LogTide.SDK.Serilogpackage - DSN connection string support
- Sensitive header filtering in middleware
LogTideErrorHandlerMiddlewarefor unhandled exceptions- Target frameworks:
net8.0/net9.0, LangVersion 13
Fixed
- 17 bugs including circuit breaker HalfOpen, dispose data loss, race conditions, W3C spec compliance, resource leaks, and sync-over-async deadlocks
Breaking Changes
SetTraceId()/WithTraceId()removed — useLogTideScope.Create()- Middleware client resolved from DI (no more
Options.Client) - Default trace header: W3C
traceparent(wasX-Trace-Id) - Dropped net6.0/net7.0
See CHANGELOG.md for full details.
What's Changed
New Contributors
Full Changelog: https://github.com/logtide-dev/logtide-sdk-csharp/commits/v0.8.3