diff --git a/sample/Serilog.Sinks.Grafana.Loki.Sample/Serilog.Sinks.Grafana.Loki.Sample.csproj b/sample/Serilog.Sinks.Grafana.Loki.Sample/Serilog.Sinks.Grafana.Loki.Sample.csproj index e101d7a..183105e 100644 --- a/sample/Serilog.Sinks.Grafana.Loki.Sample/Serilog.Sinks.Grafana.Loki.Sample.csproj +++ b/sample/Serilog.Sinks.Grafana.Loki.Sample/Serilog.Sinks.Grafana.Loki.Sample.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net9.0 enable enable diff --git a/sample/Serilog.Sinks.Grafana.Loki.SampleWebApp/Serilog.Sinks.Grafana.Loki.SampleWebApp.csproj b/sample/Serilog.Sinks.Grafana.Loki.SampleWebApp/Serilog.Sinks.Grafana.Loki.SampleWebApp.csproj index 2b2e907..1362a78 100644 --- a/sample/Serilog.Sinks.Grafana.Loki.SampleWebApp/Serilog.Sinks.Grafana.Loki.SampleWebApp.csproj +++ b/sample/Serilog.Sinks.Grafana.Loki.SampleWebApp/Serilog.Sinks.Grafana.Loki.SampleWebApp.csproj @@ -1,7 +1,7 @@ - net7.0 + net9.0 enable enable diff --git a/src/Serilog.Sinks.Grafana.Loki/LokiBatchFormatter.cs b/src/Serilog.Sinks.Grafana.Loki/LokiBatchFormatter.cs index bade389..19c814a 100644 --- a/src/Serilog.Sinks.Grafana.Loki/LokiBatchFormatter.cs +++ b/src/Serilog.Sinks.Grafana.Loki/LokiBatchFormatter.cs @@ -171,6 +171,8 @@ private void GenerateEntry( var logEvent = lokiLogEvent.LogEvent; var timestamp = logEvent.Timestamp; + var traceId = logEvent.TraceId; + var spanId = logEvent.SpanId; if (_useInternalTimestamp) { @@ -179,6 +181,18 @@ private void GenerateEntry( timestamp = lokiLogEvent.InternalTimestamp; } + if (traceId.HasValue) + { + logEvent.AddPropertyIfAbsent( + new LogEventProperty("TraceId", new ScalarValue(traceId))); + } + + if (spanId.HasValue) + { + logEvent.AddPropertyIfAbsent( + new LogEventProperty("SpanId", new ScalarValue(spanId))); + } + formatter.Format(logEvent, buffer); stream.AddEntry(timestamp, buffer.ToString().TrimEnd('\r', '\n')); diff --git a/src/Serilog.Sinks.Grafana.Loki/Models/LokiLogEvent.cs b/src/Serilog.Sinks.Grafana.Loki/Models/LokiLogEvent.cs index c107ee3..d562c1e 100644 --- a/src/Serilog.Sinks.Grafana.Loki/Models/LokiLogEvent.cs +++ b/src/Serilog.Sinks.Grafana.Loki/Models/LokiLogEvent.cs @@ -53,7 +53,9 @@ internal LokiLogEvent CopyWithProperties(IEnumerable new LogEventProperty(p.Key, p.Value))); + properties.Select(p => new LogEventProperty(p.Key, p.Value)), + LogEvent.TraceId ?? default, + LogEvent.SpanId ?? default); return this; } diff --git a/src/Serilog.Sinks.Grafana.Loki/Serilog.Sinks.Grafana.Loki.csproj b/src/Serilog.Sinks.Grafana.Loki/Serilog.Sinks.Grafana.Loki.csproj index 3908a97..ae40830 100644 --- a/src/Serilog.Sinks.Grafana.Loki/Serilog.Sinks.Grafana.Loki.csproj +++ b/src/Serilog.Sinks.Grafana.Loki/Serilog.Sinks.Grafana.Loki.csproj @@ -4,7 +4,7 @@ Serilog.Sinks.Grafana.Loki A Serilog sink sending log events to Grafana Loki true - netstandard2.0;net5.0;net6.0;net7.0 + netstandard2.0;net6.0;net7.0;net8.0;net9.0 enable enable @@ -24,8 +24,8 @@ - - + + diff --git a/test/Serilog.Sinks.Grafana.Loki.Tests/Serilog.Sinks.Grafana.Loki.Tests.csproj b/test/Serilog.Sinks.Grafana.Loki.Tests/Serilog.Sinks.Grafana.Loki.Tests.csproj index 87b24d7..5a446d6 100644 --- a/test/Serilog.Sinks.Grafana.Loki.Tests/Serilog.Sinks.Grafana.Loki.Tests.csproj +++ b/test/Serilog.Sinks.Grafana.Loki.Tests/Serilog.Sinks.Grafana.Loki.Tests.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 false enable enable