Add Structured Logging to your .NET Apps with Serilog

ebeeraheem

View Profile
125 views
Jun 21, 2025
Updated Dec 06, 2025

Install the Serilog.AspNetCore package and configure it in your DI container

// Configure Serilog
Log.Logger = new LoggerConfiguration()
    .ReadFrom.Configuration(configuration)
    .Enrich.FromLogContext()
    .CreateLogger();
host.UseSerilog();

Load the configurations from your appsettings.json file as it's the most flexible option

 "Serilog": {
   "MinimumLevel": {
     "Default": "Information",
     "Override": {
       "Microsoft": "Warning",
       "Microsoft.Hosting.Lifetime": "Information"
     }
   },
   "WriteTo": [
     { "Name": "Console" },
     {
       "Name": "File",
       "Args": {
         "path": "Logs/log.txt",
         "rollingInterval": "Hour",
         "rollOnFileSizeLimit": true,
         "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
       }
     }
   ]
 }