public void TargetWithContextAsyncTest() { CustomTargetWithContext target = new CustomTargetWithContext(); target.ContextProperties.Add(new TargetPropertyWithContext("threadid", "${threadid}")); target.IncludeMdlc = true; target.IncludeMdc = true; target.IncludeGdc = true; target.IncludeNdc = true; target.IncludeNdlc = true; target.IncludeCallSite = true; AsyncTargetWrapper wrapper = new AsyncTargetWrapper(); wrapper.WrappedTarget = target; wrapper.TimeToSleepBetweenBatches = 0; NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(wrapper, LogLevel.Debug); Logger logger = LogManager.GetLogger("Example"); GlobalDiagnosticsContext.Clear(); GlobalDiagnosticsContext.Set("TestKey", "Hello Global World"); GlobalDiagnosticsContext.Set("GlobalKey", "Hello Global World"); MappedDiagnosticsContext.Clear(); MappedDiagnosticsContext.Set("TestKey", "Hello Thread World"); MappedDiagnosticsContext.Set("ThreadKey", "Hello Thread World"); MappedDiagnosticsLogicalContext.Clear(); MappedDiagnosticsLogicalContext.Set("TestKey", "Hello Async World"); MappedDiagnosticsLogicalContext.Set("AsyncKey", "Hello Async World"); logger.Debug("log message"); System.Threading.Thread.Sleep(1); for (int i = 0; i < 1000; ++i) { if (target.LastMessage != null) { break; } System.Threading.Thread.Sleep(1); } Assert.NotEqual(0, target.LastMessage.Length); Assert.NotNull(target.LastCombinedProperties); Assert.NotEmpty(target.LastCombinedProperties); Assert.Equal(7, target.LastCombinedProperties.Count); Assert.Contains(new KeyValuePair <string, object>("GlobalKey", "Hello Global World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("ThreadKey", "Hello Thread World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("AsyncKey", "Hello Async World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("TestKey", "Hello Async World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("TestKey_1", "Hello Thread World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("TestKey_2", "Hello Global World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("threadid", System.Environment.CurrentManagedThreadId.ToString()), target.LastCombinedProperties); }
public void TargetWithContextMdlcSerializeTest() { MappedDiagnosticsLogicalContext.Clear(); MappedDiagnosticsLogicalContext.Set("TestKey", new { a = "b" }); CustomTargetWithContext target = new CustomTargetWithContext() { IncludeMdlc = true, SkipAssert = true }; WriteAndAssertSingleKey(target); }
public void TargetWithContextNdlcSerializeTest() { NestedDiagnosticsLogicalContext.Clear(); NestedDiagnosticsLogicalContext.Push(new { a = "b" }); CustomTargetWithContext target = new CustomTargetWithContext() { IncludeNdlc = true, SkipAssert = true }; WriteAndAssertSingleKey(target); }
private static void WaitForLastMessage(CustomTargetWithContext target) { System.Threading.Thread.Sleep(1); for (int i = 0; i < 1000; ++i) { if (target.LastMessage != null) { break; } System.Threading.Thread.Sleep(1); } }
private static bool WaitForLastMessage(CustomTargetWithContext target) { System.Threading.Thread.Sleep(1); for (int i = 0; i < 1000; ++i) { if (target.LastMessage != null) { return(true); } System.Threading.Thread.Sleep(1); } return(false); }
private static void WriteAndAssertSingleKey(CustomTargetWithContext target) { AsyncTargetWrapper wrapper = new AsyncTargetWrapper { WrappedTarget = target, TimeToSleepBetweenBatches = 0 }; NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(wrapper, LogLevel.Debug); Logger logger = LogManager.GetLogger("Example"); logger.Debug("log message"); Assert.True(WaitForLastMessage(target)); Assert.Equal("{ a = b }", target.LastCombinedProperties["TestKey"]); }
public void TargetWithContextAsyncTest() { CustomTargetWithContext target = new CustomTargetWithContext(); target.ContextProperties.Add(new TargetPropertyWithContext("threadid", "${threadid}")); target.IncludeScopeProperties = true; target.IncludeGdc = true; target.IncludeScopeNestedStates = true; target.IncludeCallSite = true; AsyncTargetWrapper wrapper = new AsyncTargetWrapper(); wrapper.WrappedTarget = target; wrapper.TimeToSleepBetweenBatches = 0; NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(wrapper, LogLevel.Debug); Logger logger = LogManager.GetLogger("Example"); GlobalDiagnosticsContext.Clear(); ScopeContext.Clear(); GlobalDiagnosticsContext.Set("TestKey", "Hello Global World"); GlobalDiagnosticsContext.Set("GlobalKey", "Hello Global World"); ScopeContext.PushProperty("TestKey", "Hello Async World"); ScopeContext.PushProperty("AsyncKey", "Hello Async World"); logger.Debug("log message"); Assert.True(WaitForLastMessage(target)); Assert.NotEqual(0, target.LastMessage.Length); Assert.NotNull(target.LastCombinedProperties); Assert.NotEmpty(target.LastCombinedProperties); Assert.Equal(5, target.LastCombinedProperties.Count); Assert.Contains(new KeyValuePair <string, object>("GlobalKey", "Hello Global World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("AsyncKey", "Hello Async World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("TestKey", "Hello Async World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("TestKey_1", "Hello Global World"), target.LastCombinedProperties); Assert.Contains(new KeyValuePair <string, object>("threadid", System.Environment.CurrentManagedThreadId.ToString()), target.LastCombinedProperties); }