.NET Serilog ReadFrom Configuration doesn't work
14:38 13 Nov 2025
  1. Working version:
private static void SetLogging(WebApplicationBuilder builder)
{
    Log.Logger = new LoggerConfiguration()
        .Enrich.FromLogContext()
        .MinimumLevel.Override("Microsoft.EntityFrameworkCore.Migrations", LogEventLevel.Warning)
        .MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", LogEventLevel.Warning)
        .WriteTo.Console()
        .WriteTo.LokiHttp(() => new LokiSinkConfiguration
        {
            LokiUrl = "http://localhost:3100",
            LogLabelProvider = new DefaultLogLabelProvider(
                new List
                {
                    new ("assemblyName", "WebApi")
                }),
            OutputTemplate = "[{Level:u3}] {Message:lj}{NewLine}{Exception}"
        })
        .CreateLogger();
}

Logging output works both on the console and in Grafana Loki.

  1. Not working version:
private static void SetLogging(WebApplicationBuilder builder)
{
    var logger = new LoggerConfiguration()
        .ReadFrom.Configuration(builder.Configuration)
        .Enrich.FromLogContext()
        .CreateLogger();

    builder.Logging.ClearProviders();
    builder.Logging.AddSerilog(logger);
}

appsettings.json:

{
    "Serilog": {
      "Using": ["Serilog.Sinks.Console", "Serilog.Sinks.Loki"],
      "MinimumLevel": {
        "Default": "Information",
        "Override": {
          "Microsoft.EntityFrameworkCore.Migrations": "Warning",
          "Microsoft.EntityFrameworkCore.Database.Command": "Warning"
        }
      },
      "WriteTo": [
        {
          "Name": "Console"
        },
        {
          "Name": "LokiHttp",
          "Args": {
            "serverUrl": "http://localhost:3100",
            "labels": [
              {
                "key": "Identity",
                "value": "WebApi"
              }
            ],
            "outputTemplate": "[{Level:u3}] {Message:lj}{NewLine}{Exception}",
            "restrictedToMinimumLevel": "Information"
          }
        }
      ],
      "Enrich": ["FromLogContext"]
    }
}

Logging output does not work both on the console and in Grafana Loki.

It is used .net8, as well as in all variants:

NuGet packages:


  
  
  
  
  
  

usings:

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Serilog;
using Serilog.Events;
using Serilog.Sinks.Loki;
using Serilog.Sinks.Loki.Labels;

Why doesn't the second option work? What is the error?

.net logging console serilog grafana-loki