public void WrapperWithRethrowScope_IncludesBothScopes() => LoggingTestUtility.InitializeLogs((logs, logger) => { try { try { using (logger.BeginScope("{test}", 13)) { throw new InvalidOperationException(); } } catch (InvalidOperationException ex) { using (logger.BeginScope("{wrapper}", 7)) { throw new InvalidOperationException("Wrapper", ex); } } } catch (Exception ex) { using (logger.BeginCapturedExceptionLoggingScopes(ex)) logger.LogError("message"); } Assert.Collection(logs.Messages, message => { Assert.Equal(13, Assert.Contains("test", message.ScopeValues)); Assert.Equal(7, Assert.Contains("wrapper", message.ScopeValues)); }); });
public void ThrowScope_WithSharedScope_CapturesBothScopes() => LoggingTestUtility.InitializeLogs((logs, logger) => { using (logger.BeginScope("{shared}", 11)) { try { using (logger.BeginScope("{test}", 13)) { throw new InvalidOperationException(); } } catch (Exception ex) { using (logger.BeginCapturedExceptionLoggingScopes(ex)) logger.LogError("message"); } } Assert.Collection(logs.Messages, message => { Assert.Equal(13, Assert.Contains("test", message.ScopeValues)); Assert.Equal(11, Assert.Contains("shared", message.ScopeValues)); }); });
public void RethrowWithoutScopes_PropagatesInnerExceptionScopes() => LoggingTestUtility.InitializeLogs((logs, logger) => { try { try { using (logger.BeginScope("{test}", 13)) { throw new InvalidOperationException(); } } catch (InvalidOperationException ex) { throw; } } catch (Exception ex) { using (logger.BeginCapturedExceptionLoggingScopes(ex)) logger.LogError("message"); } Assert.Collection(logs.Messages, message => Assert.Equal(13, Assert.Contains("test", message.ScopeValues))); });
public void ThrowWithSharedScope_SameKey_ThrowScopeTakesPriority() => LoggingTestUtility.InitializeLogs((logs, logger) => { try { using (logger.BeginScope("{test}", 7)) { try { using (logger.BeginScope("{test}", 13)) { throw new InvalidOperationException(); } } catch (InvalidOperationException ex) { throw; } } } catch (Exception ex) { using (logger.BeginCapturedExceptionLoggingScopes(ex)) logger.LogError("message"); } Assert.Collection(logs.Messages, message => Assert.Equal(13, Assert.Contains("test", message.ScopeValues))); });
public void ThrowScope_WhenNestedWithSameKey_InnerOverridesOuter() => LoggingTestUtility.InitializeLogs((logs, logger) => { try { using (logger.BeginScope("{test}", 13)) using (logger.BeginScope("{test}", 7)) { throw new InvalidOperationException(); } } catch (Exception ex) { using (logger.BeginCapturedExceptionLoggingScopes(ex)) logger.LogError("message"); } Assert.Collection(logs.Messages, message => Assert.Equal(7, Assert.Contains("test", message.ScopeValues))); });
public void UnthrownWrapperWithLocalScope_SameKey_LocalScopesLast_TakesLocalScopes() => LoggingTestUtility.InitializeLogs((logs, logger) => { try { using (logger.BeginScope("{test}", 13)) { throw new InvalidOperationException(); } } catch (Exception ex) { using (logger.BeginCapturedExceptionLoggingScopes(new InvalidOperationException("wrapper", ex))) using (logger.BeginScope("{test}", 7)) logger.LogError("message"); } Assert.Collection(logs.Messages, message => Assert.Equal(7, Assert.Contains("test", message.ScopeValues))); });
public void UnthrownWrapperWithSharedScopes_PropagatesInnerExceptionScopes() => LoggingTestUtility.InitializeLogs((logs, logger) => { using (logger.BeginScope("{outer}", 7)) { try { using (logger.BeginScope("{test}", 13)) { throw new InvalidOperationException(); } } catch (Exception ex) { using (logger.BeginCapturedExceptionLoggingScopes(new InvalidOperationException("wrapper", ex))) logger.LogError("message"); } } Assert.Collection(logs.Messages, message => { Assert.Equal(13, Assert.Contains("test", message.ScopeValues)); Assert.Equal(7, Assert.Contains("outer", message.ScopeValues)); }); });