Serilog.Formatting.Compact.Reader
4.0.0
Prefix Reserved
See the version list below for details.
dotnet add package Serilog.Formatting.Compact.Reader --version 4.0.0
NuGet\Install-Package Serilog.Formatting.Compact.Reader -Version 4.0.0
<PackageReference Include="Serilog.Formatting.Compact.Reader" Version="4.0.0" />
<PackageVersion Include="Serilog.Formatting.Compact.Reader" Version="4.0.0" />
<PackageReference Include="Serilog.Formatting.Compact.Reader" />
paket add Serilog.Formatting.Compact.Reader --version 4.0.0
#r "nuget: Serilog.Formatting.Compact.Reader, 4.0.0"
#:package Serilog.Formatting.Compact.Reader@4.0.0
#addin nuget:?package=Serilog.Formatting.Compact.Reader&version=4.0.0
#tool nuget:?package=Serilog.Formatting.Compact.Reader&version=4.0.0
Serilog.Formatting.Compact.Reader

This package reads (deserializes) JSON log files created by Serilog.Formatting.Compact back into Serilog LogEvents.
Example
Log events are written to a file using CompactJsonFormatter:
await using var fileLog = new LoggerConfiguration()
.WriteTo.File(new CompactJsonFormatter(), "log.clef")
.CreateLogger();
fileLog.Information("Hello, {@User}", new { Name = "nblumhardt", Id = 101 });
fileLog.Information("Number {N:x8}", 42);
fileLog.Warning("Tags are {Tags}", new[] { "test", "orange" });
try
{
throw new DivideByZeroException();
}
catch(Exception ex)
{
fileLog.Error(ex, "Something failed");
}
This creates a log file with content similar to:
{"@t":"2024-10-12T04:46:58.0554314Z","@mt":"Hello, {@User}","User":{"Name":"nblumhardt","Id":101}}
{"@t":"2024-10-12T04:46:58.0684369Z","@mt":"Number {N:x8}","@r":["0000002a"],"N":42}
{"@t":"2024-10-12T04:46:58.0724384Z","@mt":"Tags are {Tags}","@l":"Warning","Tags":["test","orange"]}
{"@t":"2024-10-12T04:46:58.0904378Z","@mt":"Something failed","@l":"Error", "@x":"System.DivideByZer...<snip>"}
An instance of LogEventReader converts each line of the log file back into a LogEvent, which can be manipulated, rendered, or written through another Serilog sink:
await using var console = new LoggerConfiguration()
.WriteTo.Console()
.CreateLogger();
await using var clef = File.OpenText("log.clef"))
var reader = new LogEventReader(clef);
while (reader.TryRead(out var evt))
console.Write(evt);
Output from the logger:

Limitations
Events deserialized from JSON are for typical purposes just like the original log events. There are two main things to keep in mind:
- JSON doesn't carry all of the type information necessary to determine if, for example, a number is an
intor afloat. JSON.NET does a good job of deserializing anything that it encounters, but you can't rely on the types here being identical. - Exceptions deserialized this way aren't instances of the original exception type - all you can do with them is call
ToString()to get the formatted message and stack trace, which is what 99% of Serilog sinks will do.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 is compatible. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- Newtonsoft.Json (>= 13.0.3)
- Serilog (>= 4.0.0)
-
.NETFramework 4.7.1
- Newtonsoft.Json (>= 13.0.3)
- Serilog (>= 4.0.0)
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
- Serilog (>= 4.0.0)
-
net6.0
- Newtonsoft.Json (>= 13.0.3)
- Serilog (>= 4.0.0)
-
net8.0
- Newtonsoft.Json (>= 13.0.3)
- Serilog (>= 4.0.0)
NuGet packages (43)
Showing the top 5 NuGet packages that depend on Serilog.Formatting.Compact.Reader:
| Package | Downloads |
|---|---|
|
Umbraco.Cms.Infrastructure
Contains the infrastructure assembly needed to run Umbraco CMS. |
|
|
Umbraco.Cms.Web.Common
Contains the web assembly needed to run Umbraco CMS. |
|
|
Umbraco.Cms.Examine.Lucene
Adds Examine searching support using Lucene to Umbraco CMS. |
|
|
Umbraco.Cms.Web.Website
Contains the website assembly needed to run the frontend of Umbraco CMS. |
|
|
Nuke.Build
The AKEless Build System for C#/.NET Signed by signpath.io from repository 'https://github.com/nuke-build/nuke' commit '8aaec258a7e00e5d98e013be025db1a42bc58d79' (see contained AppVeyorSettings.json file for build settings). |
GitHub repositories (7)
Showing the top 7 popular GitHub repositories that depend on Serilog.Formatting.Compact.Reader:
| Repository | Stars |
|---|---|
|
umbraco/Umbraco-CMS
Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.
|
|
|
nuke-build/nuke
🏗 The AKEless Build System for C#/.NET
|
|
|
ErsatzTV/ErsatzTV
Open-source platform that transforms your personal media library into live, custom TV channels.
|
|
|
SparkDevNetwork/Rock
An open source CMS, Relationship Management System (RMS) and Church Management System (ChMS) all rolled into one.
|
|
|
datalust/seqcli
The Seq command-line client. Administer, log, ingest, search, from any OS.
|
|
|
datalust/clef-tool
A command-line tool for manipulating Compact Log Event Format files
|
|
|
Shazwazza/UmbracoIdentity
ASP.NET Identity implementation for Umbraco's native member data
|
| Version | Downloads | Last Updated |
|---|---|---|
| 4.1.0-dev-00085 | 3,325 | 8/5/2024 |
| 4.1.0-dev-00082 | 518 | 7/16/2024 |
| 4.0.1-dev-00081 | 221 | 7/16/2024 |
| 4.0.1-dev-00079 | 241 | 7/14/2024 |
| 4.0.0 | 5,138,922 | 7/2/2024 |
| 4.0.0-dev-00071 | 239 | 7/2/2024 |
| 3.0.0 | 6,783,972 | 11/9/2023 |
| 3.0.0-dev-00063 | 476 | 10/3/2023 |
| 2.0.0 | 3,899,439 | 11/3/2022 |
| 2.0.0-dev-00060 | 367 | 10/30/2022 |
| 1.0.6-dev-00059 | 531 | 10/28/2022 |
| 1.0.5 | 17,484,847 | 4/29/2021 |
| 1.0.5-dev-00048 | 543 | 4/27/2021 |
| 1.0.4 | 153,829 | 3/8/2021 |
| 1.0.3 | 2,421,354 | 11/5/2018 |
| 1.0.3-dev-00036 | 1,374 | 9/22/2018 |
| 1.0.3-dev-00034 | 1,728 | 5/9/2018 |
| 1.0.3-dev-00033 | 1,640 | 3/21/2018 |
| 1.0.2 | 218,686 | 2/5/2018 |
| 1.0.2-dev-00024 | 1,412 | 8/29/2017 |
| 1.0.2-dev-00020 | 1,361 | 8/21/2017 |
| 1.0.1 | 118,603 | 5/18/2017 |
| 1.0.1-dev-00016 | 1,402 | 5/18/2017 |
| 1.0.1-dev-00014 | 1,406 | 5/18/2017 |
| 1.0.0 | 119,539 | 2/14/2017 |
| 1.0.0-dev-00010 | 1,462 | 11/25/2016 |
| 1.0.0-dev-00008 | 1,522 | 10/28/2016 |
| 1.0.0-dev-00006 | 1,394 | 10/27/2016 |
| 1.0.0-dev-00004 | 1,414 | 10/27/2016 |
| 1.0.0-dev-00002 | 1,382 | 10/18/2016 |
| 1.0.0-dev-00001 | 1,412 | 10/12/2016 |