Search code examples
c#.net-6.0serilog.net-core-3.1serilog-aspnetcore

Serilog .NET upgrade some log properties are gone


I upgraded .NET Core 3.1 to .NET 6 and also include serilog. It is noticed that SpanId of log message is gone but I can see RequestId property. I would like to know what is happening behind the scene for this change since I am unable to find a proper changelog.

Here are my .NET 6 packages:

<PackageReference Include="Serilog.AspNetCore" Version="6.1.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />
<PackageReference Include="Serilog.Enrichers.Process" Version="2.0.2" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.AwsCloudWatch" Version="4.0.171" />

These are the .NET Core 3.1 packages:

<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />
<PackageReference Include="Serilog.Enrichers.Process" Version="2.0.2" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.AwsCloudWatch" Version="4.0.171" />

Solution

  • Try installing Serilog.Enrichers.Span and then adding .Enrich.WithSpan() to the logger setup:

    var logger = new LoggerConfiguration()
        .Enrich.WithSpan()
        ...  
        .CreateLogger();
    

    Check out this github comment, it seems that SpanId became opt-in in .NET 5.