serilog/serilog
### [`v2.12.0`](https://togithub.com/serilog/serilog/releases/tag/v2.12.0)
#### Highlights of 2.12.0
##### Improved and expanded `enable` support
A huge number of commits have gone into completing and refining non-null reference type annotations, which now cover the entire public Serilog API. The Serilog project itself now builds with non-null reference type checking globally enabled :tada:
##### `IAsyncDisposable` support
Sinks that need to flush changes using asynchronous APIs can now implement `IAsyncDisposable` and prevent the possibility of deadlocking while waiting for tasks to complete.
To drive this, `Logger` can now be disposed via `using async`:
```csharp
await using var log = new LoggerConfiguration().CreateLogger();
```
and the `Log` class provides `Log.CloseAndFlushAsync()`:
```csharp
await Log.CloseAndFlushAsync();
```
##### `DateOnly` and `TimeOnly` support
The `DateOnly` and `TimeOnly` types introduced in .NET 6 are now correctly handled as scalar values when capturing.
#### Merged PRs
- [#1713](https://togithub.com/serilog/serilog/issues/1713), [#1716](https://togithub.com/serilog/serilog/issues/1716), [#1715](https://togithub.com/serilog/serilog/issues/1715), [#1722](https://togithub.com/serilog/serilog/issues/1722), [#1721](https://togithub.com/serilog/serilog/issues/1721), [#1720](https://togithub.com/serilog/serilog/issues/1720), [#1729](https://togithub.com/serilog/serilog/issues/1729) - improved non-null reference type annotations ([@SimonCropp](https://togithub.com/SimonCropp))
- [#1702](https://togithub.com/serilog/serilog/issues/1702) - `DateOnly` and `TimeOnly` support ([@SimonCropp](https://togithub.com/SimonCropp))
- [#1764](https://togithub.com/serilog/serilog/issues/1764), [#1703](https://togithub.com/serilog/serilog/issues/1703), [#1708](https://togithub.com/serilog/serilog/issues/1708), [#1709](https://togithub.com/serilog/serilog/issues/1709), [#1712](https://togithub.com/serilog/serilog/issues/1712), [#1724](https://togithub.com/serilog/serilog/issues/1724), [#1730](https://togithub.com/serilog/serilog/issues/1730), [#1747](https://togithub.com/serilog/serilog/issues/1747) - build and dependency updates ([@SimonCropp](https://togithub.com/SimonCropp))
- [#1723](https://togithub.com/serilog/serilog/issues/1723), [#1728](https://togithub.com/serilog/serilog/issues/1728), [#1731](https://togithub.com/serilog/serilog/issues/1731), [#1732](https://togithub.com/serilog/serilog/issues/1732), [#1734](https://togithub.com/serilog/serilog/issues/1734), [#1735](https://togithub.com/serilog/serilog/issues/1735), [#1733](https://togithub.com/serilog/serilog/issues/1733), [#1736](https://togithub.com/serilog/serilog/issues/1736), [#1739](https://togithub.com/serilog/serilog/issues/1739), [#1746](https://togithub.com/serilog/serilog/issues/1746), [#1745](https://togithub.com/serilog/serilog/issues/1745), [#1741](https://togithub.com/serilog/serilog/issues/1741), [#1742](https://togithub.com/serilog/serilog/issues/1742) - code clean-up and modernization ([@SimonCropp](https://togithub.com/SimonCropp))
- [#1750](https://togithub.com/serilog/serilog/issues/1750) - `IAsyncDisposable` support for `Logger` and sinks ([@nblumhardt](https://togithub.com/nblumhardt))
- [#1699](https://togithub.com/serilog/serilog/issues/1699) - fix some XDOC documentation ([@sungam3r](https://togithub.com/sungam3r))
- [#1719](https://togithub.com/serilog/serilog/issues/1719) - remove redundant `!` operator from `null` in conditions ([@sungam3r](https://togithub.com/sungam3r))
- [#1725](https://togithub.com/serilog/serilog/issues/1725) - introduce file-scoped namespaces ([@sungam3r](https://togithub.com/sungam3r))
- [#1700](https://togithub.com/serilog/serilog/issues/1700), [#1704](https://togithub.com/serilog/serilog/issues/1704), [#1707](https://togithub.com/serilog/serilog/issues/1707) - more nulllable annotation updates ([@nblumhardt](https://togithub.com/nblumhardt))
- [#1711](https://togithub.com/serilog/serilog/issues/1711) - fix support for `ValueTuple` ([@SimonCropp](https://togithub.com/SimonCropp))
### [`v2.11.0`](https://togithub.com/serilog/serilog/releases/tag/v2.11.0)
- [#1503](https://togithub.com/serilog/serilog/issues/1503) - make some local functions `static` to avoid scope capture ([@SimonCropp](https://togithub.com/SimonCropp))
- [#1561](https://togithub.com/serilog/serilog/issues/1561) - add support for collections/`string[]` to key-value settings ([@stochmal](https://togithub.com/stochmal))
- [#1588](https://togithub.com/serilog/serilog/issues/1588), [#1591](https://togithub.com/serilog/serilog/issues/1591), [#1593](https://togithub.com/serilog/serilog/issues/1593), [#1594](https://togithub.com/serilog/serilog/issues/1594), [#1597](https://togithub.com/serilog/serilog/issues/1597) - nullable reference type annotations and language version updates ([@SimonCropp](https://togithub.com/SimonCropp))
- [#1595](https://togithub.com/serilog/serilog/issues/1595) - `net5.0` target ([@nblumhardt](https://togithub.com/nblumhardt))
- [#1652](https://togithub.com/serilog/serilog/issues/1652) - fix capturing of anonymous types in .NET interactive ([@KZedan](https://togithub.com/KZedan))
- [#1641](https://togithub.com/serilog/serilog/issues/1641) - corrected documentation comments for `MessageTemplateFormatMethod` ([@JinsPeter](https://togithub.com/JinsPeter))
- [#1635](https://togithub.com/serilog/serilog/issues/1635) - fix destructuring of `Memory`/`ReadOnlyMemory` and non-reflection-compatible properties e.g. of type `Span` ([@skomis-mm](https://togithub.com/skomis-mm))
- [#1625](https://togithub.com/serilog/serilog/issues/1625) - update issue template ([@augustoproiete](https://togithub.com/augustoproiete))
- [#1664](https://togithub.com/serilog/serilog/issues/1664) - update `ILogger` documentation ([@erichiller](https://togithub.com/erichiller))
### [`v2.10.0`](https://togithub.com/serilog/serilog/blob/HEAD/CHANGES.md#2100)
- [#1370](https://togithub.com/serilog/serilog/issues/1370), [#1374](https://togithub.com/serilog/serilog/issues/1374) - improve test coverage ([@rafaelsc](https://togithub.com/rafaelsc))
- [#1371](https://togithub.com/serilog/serilog/issues/1371), [#1377](https://togithub.com/serilog/serilog/issues/1377), [#1429](https://togithub.com/serilog/serilog/issues/1429), [#1445](https://togithub.com/serilog/serilog/issues/1445) - documentation updates ([@perjahn](https://togithub.com/perjahn), [@morgankenyon](https://togithub.com/morgankenyon), [@rafaelsc](https://togithub.com/rafaelsc), [@JakenVeina](https://togithub.com/JakenVeina))
- [#1378](https://togithub.com/serilog/serilog/issues/1378), [#1392](https://togithub.com/serilog/serilog/issues/1392) - build fixes ([@nblumhardt](https://togithub.com/nblumhardt))
- [#1477](https://togithub.com/serilog/serilog/issues/1477) - don't fail to log when `ToString()` throws an exception ([@rafaelsc](https://togithub.com/rafaelsc))
- [#1435](https://togithub.com/serilog/serilog/issues/1435) - `netstandard2.1` support and default implementations for `ILogger` methods ([@skomis-mm](https://togithub.com/skomis-mm))
- [#1442](https://togithub.com/serilog/serilog/issues/1442) - `MinimumLevel.Override()` runtime optimizations ([@skomis-mm](https://togithub.com/skomis-mm))
- [#1463](https://togithub.com/serilog/serilog/issues/1463) - fix disposal of wrapped sinks through `LoggerSinkConfiguration.Wrap()`
- [#1466](https://togithub.com/serilog/serilog/issues/1466) - internal wrapper sink refactoring ([@nblumhardt](https://togithub.com/nblumhardt))
- [#1427](https://togithub.com/serilog/serilog/issues/1427), [#1452](https://togithub.com/serilog/serilog/issues/1452), [#1467](https://togithub.com/serilog/serilog/issues/1467) - when `ToString()` on a logged object returns `null`, serialize as `""` ([@rafaelsc](https://togithub.com/rafaelsc), [@nblumhardt](https://togithub.com/nblumhardt))
- [#1472](https://togithub.com/serilog/serilog/issues/1472) - improve handling of minimum level overrides in sub-loggers ([@skomis-mm](https://togithub.com/skomis-mm))
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
2.9.0
->2.12.0
Release Notes
serilog/serilog
### [`v2.12.0`](https://togithub.com/serilog/serilog/releases/tag/v2.12.0) #### Highlights of 2.12.0 ##### Improved and expanded `Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.