diff --git a/src/NLog.Extensions.Logging/Logging/NLogBeginScopeParser.cs b/src/NLog.Extensions.Logging/Logging/NLogBeginScopeParser.cs index f96c9ca4..73812b18 100644 --- a/src/NLog.Extensions.Logging/Logging/NLogBeginScopeParser.cs +++ b/src/NLog.Extensions.Logging/Logging/NLogBeginScopeParser.cs @@ -212,6 +212,11 @@ public void Dispose() } } } + + public override string ToString() + { + return (_properties?.Count > 0 ? _properties[_properties.Count - 1]?.ToString() : null) ?? base.ToString(); + } } } } diff --git a/test/CustomBeginScopeTest.cs b/test/CustomBeginScopeTest.cs index 1abef9b6..ff752274 100644 --- a/test/CustomBeginScopeTest.cs +++ b/test/CustomBeginScopeTest.cs @@ -37,9 +37,10 @@ public void TestNonSerializableSayHi() var runner = GetRunner(); var target = new NLog.Targets.MemoryTarget() { Layout = "${message} ${mdlc:World}. Welcome ${ndlc}" }; NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(target); - runner.SayHi().Wait(); + var scopeString = runner.SayHi().Result; Assert.Single(target.Logs); Assert.Equal("Hi Earth. Welcome Earth People", target.Logs[0]); + Assert.Equal("Earth People", scopeString); } public class CustomBeginScopeTestRunner @@ -60,12 +61,13 @@ public async Task SayHello() } } - public async Task SayHi() + public async Task SayHi() { - using (_logger.BeginScope("{World} People", "Earth")) + using (var scopeString = _logger.BeginScope("{World} People", "Earth")) { await Task.Yield(); _logger.LogInformation("Hi"); + return scopeString.ToString(); } } }