-
Notifications
You must be signed in to change notification settings - Fork 41
Upgrading from v8 to v9
Mykhailo Shevchuk edited this page Jun 6, 2026
·
5 revisions
v9 is a major release. This page is the practical checklist; see Breaking changes for the exhaustive list.
- Move to
net8.0,net9.0ornet10.0(older targets are dropped) - Serilog
4.3.1+is required -
FSharp.Corearrives as a transitive dependency - nothing to do, just expect it in your output folder
| v8 | v9 |
|---|---|
batchPostingLimit |
batchSizeLimit |
reservedPropertyRenamingStrategy |
removed |
useInternalTimestamp |
removed |
Also: queueLimit is now bounded at 50000 by default.
-
Custom HTTP client: replace any
ILokiHttpClient/LokiGzipHttpClientimplementation with aDelegatingHandler(or an injectedHttpClient). See Custom HttpClient. -
levellabel is now optional: v8 added it automatically; v9 keeps it on by default but lets you disable it withhandleLogLevelAsLabel: false. -
Fatalvalue changed: thelevelvalue forFatalis nowfatal(wascritical). Update Grafana dashboards and alert rules. -
Promoted properties stay in the body: properties listed in
propertiesAsLabelsnow appear both as labels and inside the JSON line. If you relied on them being stripped from the body, adjust your queries. -
Reserved-property renaming is gone: there is no renaming strategy; a body property whose name collides with a reserved key is prefixed with
_(e.g._Message).
- Trace correlation:
traceIdMode/spanIdMode→ Trace and span enrichment - Structured metadata:
propertiesAsStructuredMetadata→ Structured metadata - Custom exception output:
exceptionFormatter→ Custom exception formatting
Enable SelfLog during the cutover to catch rejected batches or misconfiguration:
Serilog.Debugging.SelfLog.Enable(Console.Error);