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