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);
        }