Skip to content

Commit f1c1bd7

Browse files
committed
Collect trace and span ids in request completion events
1 parent 5ca0d90 commit f1c1bd7

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

src/Serilog.AspNetCore/AspNetCore/RequestLoggingMiddleware.cs

+14-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class RequestLoggingMiddleware
3232
readonly Func<HttpContext, string, double, int, IEnumerable<LogEventProperty>> _getMessageTemplateProperties;
3333
readonly ILogger? _logger;
3434
readonly bool _includeQueryInRequestPath;
35-
static readonly LogEventProperty[] NoProperties = new LogEventProperty[0];
35+
static readonly LogEventProperty[] NoProperties = Array.Empty<LogEventProperty>();
3636

3737
public RequestLoggingMiddleware(RequestDelegate next, DiagnosticContext diagnosticContext, RequestLoggingOptions options)
3838
{
@@ -82,7 +82,6 @@ bool LogCompletion(HttpContext httpContext, DiagnosticContextCollector collector
8282

8383
if (!logger.IsEnabled(level)) return false;
8484

85-
// Enrich diagnostic context
8685
_enrichDiagnosticContext?.Invoke(_diagnosticContext, httpContext);
8786

8887
if (!collector.TryComplete(out var collectedProperties, out var collectedException))
@@ -91,7 +90,19 @@ bool LogCompletion(HttpContext httpContext, DiagnosticContextCollector collector
9190
// Last-in (correctly) wins...
9291
var properties = collectedProperties.Concat(_getMessageTemplateProperties(httpContext, GetPath(httpContext, _includeQueryInRequestPath), elapsedMs, statusCode));
9392

94-
var evt = new LogEvent(DateTimeOffset.Now, level, ex ?? collectedException, _messageTemplate, properties);
93+
var (traceId, spanId) = Activity.Current is { } activity ?
94+
(activity.TraceId, activity.SpanId) :
95+
(default(ActivityTraceId), default(ActivitySpanId));
96+
97+
var evt = new LogEvent(
98+
DateTimeOffset.Now,
99+
level,
100+
ex ?? collectedException,
101+
_messageTemplate,
102+
properties,
103+
traceId,
104+
spanId);
105+
95106
logger.Write(evt);
96107

97108
return false;

src/Serilog.AspNetCore/Serilog.AspNetCore.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<Description>Serilog support for ASP.NET Core logging</Description>
55
<!-- This must match the major and minor components of the referenced *.Extensions.* packages (and highest supported .NET TFM). -->
6-
<VersionPrefix>7.0.0</VersionPrefix>
6+
<VersionPrefix>7.0.1</VersionPrefix>
77
<Authors>Microsoft;Serilog Contributors</Authors>
88
<TargetFrameworks>net462;netstandard2.0;netstandard2.1;net6.0;net7.0</TargetFrameworks>
99
<GenerateDocumentationFile>true</GenerateDocumentationFile>
@@ -23,7 +23,7 @@
2323
</ItemGroup>
2424

2525
<ItemGroup>
26-
<PackageReference Include="Serilog" Version="2.12.0" />
26+
<PackageReference Include="Serilog" Version="3.1.0-*" />
2727
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" />
2828
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
2929
<PackageReference Include="Serilog.Sinks.Debug" Version="2.0.0" />

0 commit comments

Comments
 (0)