TCIS.Logging.Serilog
1.0.0-rc.33
dotnet add package TCIS.Logging.Serilog --version 1.0.0-rc.33
NuGet\Install-Package TCIS.Logging.Serilog -Version 1.0.0-rc.33
<PackageReference Include="TCIS.Logging.Serilog" Version="1.0.0-rc.33" />
<PackageVersion Include="TCIS.Logging.Serilog" Version="1.0.0-rc.33" />
<PackageReference Include="TCIS.Logging.Serilog" />
paket add TCIS.Logging.Serilog --version 1.0.0-rc.33
#r "nuget: TCIS.Logging.Serilog, 1.0.0-rc.33"
#:package TCIS.Logging.Serilog@1.0.0-rc.33
#addin nuget:?package=TCIS.Logging.Serilog&version=1.0.0-rc.33&prerelease
#tool nuget:?package=TCIS.Logging.Serilog&version=1.0.0-rc.33&prerelease
TCIS.Logging.Serilog
A provider that integrates Serilog into the TCIS logging system.
🌟 Overview
This module automatically configures Serilog as the primary logging provider for the entire application, replacing the default Microsoft logging. It allows you to easily route logs to storage systems such as Elasticsearch, Seq, or Files with flexible formats (e.g., JSON).
📦 Installation
Install the package via NuGet or .NET CLI:
dotnet add package TCIS.Logging.Serilog
⚙️ Configuration (appsettings.json)
Standard Serilog configuration (Sinks, Enrichers, etc.):
{
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "Console",
"Args": {
"formatter": "TCIS.Logging.Serilog.TCISEcsJsonFormatter, TCIS.Logging.Serilog"
}
},
{
"Name": "File",
"Args": {
"path": "Logs/log-.txt",
"rollingInterval": "Day",
"formatter": "TCIS.Logging.Serilog.TCISEcsJsonFormatter, TCIS.Logging.Serilog"
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
}
}
⚠️
formatteris mandatory on every sink, and it must beTCISEcsJsonFormatter.
MicrosoftLoggingSinkemits log records as"{@TCISEcsDocument}", andAddTSerilogregistersDestructure.AsScalar<TcisEcsDocument>()so the object reaches the formatter intact —TCISEcsJsonFormatterthen calls the Elastic SDK's ownSerialize().Any sink without that formatter — including the plain console sink and
CompactJsonFormatter, which this README previously showed — renders the scalar throughToString(). Every line comes out as the literal stringTCIS.Logging.TcisEcsDocument: message, exception and stack trace are all gone. The lines are still there and the levels are still right, so it reads as working until someone needs a stack trace. Measured on a generated project, where it hid the real cause of a 500 for several runs.
🚀 Usage
In Program.cs, call the AddTSerilog() extension on WebApplicationBuilder (required for ASP.NET Core applications using WebApplicationBuilder):
using TCIS.Logging.Serilog.Extensions;
var builder = WebApplication.CreateBuilder(args);
// Configure Serilog to replace Microsoft Logging
builder.AddTSerilog();
var app = builder.Build();
app.Run();
💡 Basic Example
After adding AddTSerilog(), all logging calls from TCIS.Logging (via ILogWriter) will be automatically handled and enriched by Serilog. You simply continue to use ILogWriter as usual.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net8.0
- Elastic.CommonSchema (>= 8.11.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Logging (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Options (>= 9.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.0)
- Serilog (>= 4.1.0)
- Serilog.AspNetCore (>= 8.0.3)
- Serilog.Settings.Configuration (>= 8.0.4)
- Serilog.Sinks.Async (>= 2.1.0)
- Serilog.Sinks.File (>= 6.0.0)
- TCIS.Logging (>= 1.0.0-rc.33)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-rc.33 | 44 | 8/21/2026 |
| 1.0.0-rc.32 | 41 | 8/21/2026 |
| 1.0.0-rc.31 | 38 | 8/21/2026 |
| 1.0.0-rc.30 | 41 | 8/21/2026 |
| 1.0.0-rc.29 | 41 | 8/21/2026 |
| 1.0.0-rc.28 | 40 | 8/21/2026 |
| 1.0.0-rc.27 | 40 | 8/21/2026 |
| 1.0.0-rc.26 | 43 | 8/20/2026 |
| 1.0.0-rc.25 | 44 | 8/20/2026 |
| 1.0.0-rc.24 | 41 | 8/20/2026 |
| 1.0.0-rc.23 | 42 | 8/20/2026 |
| 1.0.0-rc.22 | 48 | 8/19/2026 |
| 1.0.0-rc.21 | 46 | 8/19/2026 |
| 1.0.0-rc.20 | 54 | 8/18/2026 |
| 1.0.0-rc.19 | 64 | 8/13/2026 |
| 1.0.0-rc.18 | 55 | 8/13/2026 |
| 1.0.0-rc.17 | 56 | 8/13/2026 |
| 1.0.0-rc.16 | 56 | 8/13/2026 |
| 1.0.0-rc.15 | 63 | 8/12/2026 |
| 1.0.0-rc.14 | 71 | 8/12/2026 |