Sub-microsecond hot path
Async bounded channel queue. Your threads enqueue in ~160ns and return — enrichment, formatting, and disk writes happen on a dedicated background thread.
Deep, structured, seamless. SinkSharp gives your .NET services sub-microsecond logging with built-in PII masking, correlation propagation, and a real-time local dashboard — no Seq licence needed.
| Feature | Serilog | NLog | SinkSharp |
|---|---|---|---|
| MEL-compatible ILogger | ✓ | ✓ | ✓ |
| Built-in PII masking | ✗ | ✗ | ✓ |
| Correlation ID auto-propagation | Manual | Manual | ✓ Auto |
| Azure resource context | Plugin | Plugin | ✓ Built-in |
| Local web dashboard | Seq ($500/yr) | ✗ | ✓ Free |
| Built-in health check | ✗ | ✗ | ✓ |
| Hot path allocation | ~248 B | ~220 B | ~160 B |
| Licence | Apache 2 | BSD | MIT |
| Method | Mean | Allocated | Visual | vs Serilog |
|---|---|---|---|---|
| MEL NullLogger (baseline) | 0.5 ns | 0 B | — | |
| Log below min level | 1.2 ns | 0 B | free | |
| SinkSharp — no enrichers | 160 ns | 112 B | 48% faster | |
| SinkSharp — all enrichers | 210 ns | 160 B | 32% faster | |
| Serilog async file | 310 ns | 248 B | baseline |
Run your own: dotnet run -c Release --project benchmarks/SinkSharp.Benchmarks
Why the hot-path is the only number that matters: SinkSharp uses an async bounded channel. Your application thread pays only the enqueue cost (~160ns). A slow sink cannot slow down your API.
Free forever. MIT licence. One NuGet package. No Seq, no Docker, no overhead.
Read the docs →dotnet add package SinkSharp.Core