Skip to content

Commit 8428510

Browse files
committed
fixed stringify support in logger scope
1 parent 73671f8 commit 8428510

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerScope.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public void EnrichAndCreateScopeItem(LogEvent logEvent, ILogEventPropertyFactory
7171

7272
var key = stateProperty.Key;
7373
var destructureObject = false;
74+
var value = stateProperty.Value;
7475

7576
if (key.StartsWith("@"))
7677
{
@@ -81,9 +82,10 @@ public void EnrichAndCreateScopeItem(LogEvent logEvent, ILogEventPropertyFactory
8182
if (key.StartsWith("$"))
8283
{
8384
key = key.Substring(1);
85+
value = value?.ToString();
8486
}
8587

86-
var property = propertyFactory.CreateProperty(key, stateProperty.Value, destructureObject);
88+
var property = propertyFactory.CreateProperty(key, value, destructureObject);
8789
logEvent.AddPropertyIfAbsent(property);
8890
}
8991
}

test/Serilog.Extensions.Logging.Tests/SerilogLoggerTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,21 @@ public void SingleScopeProperty()
162162
Assert.Equal("\"pizza\"", sink.Writes[0].Properties["Name"].ToString());
163163
}
164164

165+
[Fact]
166+
public void StringifyScopeProperty()
167+
{
168+
var (logger, sink) = SetUp(LogLevel.Trace);
169+
170+
using (logger.BeginScope("{$values}", new int[] { 1, 2, 3, 4 }))
171+
{
172+
logger.Log(LogLevel.Information, 0, TestMessage, null, null);
173+
}
174+
175+
Assert.Equal(1, sink.Writes.Count);
176+
Assert.True(sink.Writes[0].Properties.ContainsKey("values"));
177+
Assert.Equal("\"System.Int32[]\"", sink.Writes[0].Properties["values"].ToString());
178+
}
179+
165180
[Fact]
166181
public void NestedScopeSameProperty()
167182
{

0 commit comments

Comments
 (0)