public void ContextLoggerCanSetContext() { const string message1 = "This is a test 1"; const string message2 = "This is a test 2"; using var context1 = new ActionContext("default", "TestContext1"); using var context2 = new ActionContext("default", "TestContext2"); var logger = new ContextLogger(context1); logger.Trace(message1); logger.TrySetContext(context2); logger.Trace(message2); Assert.NotNull(logger.LogEntries); Assert.Equal(2, logger.LogEntries.Count); var entries = logger.LogEntries.ToList(); var entry1 = entries[0]; var entry2 = entries[1]; Assert.Equal(LogLevel.Trace, entry1.LogLevel); Assert.Equal(message1, entry1.Message); Assert.Equal(context1.Info.ContextName, entry1.ContextName); Assert.Equal(context1.Info.Id, entry1.ContextId); Assert.Equal(LogLevel.Trace, entry2.LogLevel); Assert.Equal(message2, entry2.Message); Assert.Equal(context2.Info.ContextName, entry2.ContextName); Assert.Equal(context2.Info.Id, entry2.ContextId); }
public void ContextLoggerTraceOutputsSuccessfully() { const string message = "This is a test"; using var context = new ActionContext("default", "TestContext"); Thread.Sleep(10); var logger = new ContextLogger(context); logger.Trace(message); var entry = logger.LogEntries?.FirstOrDefault(); Assert.NotNull(entry); Assert.Single(logger.LogEntries); Assert.Equal(LogLevel.Trace, entry.LogLevel); Assert.Equal(message, entry.Message); Assert.Equal(context.Info.ContextName, entry.ContextName); Assert.Equal(context.Info.Id, entry.ContextId); Assert.True(entry.TimeElapsed.TotalMilliseconds > 10); }