public void MicrosoftConsoleJsonLayout_ExceptionEvent()
        {
            var layout    = new MicrosoftConsoleJsonLayout();
            var exception = new ArgumentException("Test");
            var eventId   = 42;
            var logEvent1 = new LogEventInfo(LogLevel.Error, "MyLogger", null, "Alert {EventId}", new object[] { eventId }, exception);
            var result1   = layout.Render(logEvent1);

            Assert.Equal($"{{ \"Timestamp\": \"{logEvent1.TimeStamp.ToUniversalTime().ToString("O")}\", \"EventId\": {eventId}, \"LogLevel\": \"Error\", \"Category\": \"MyLogger\", \"Message\": \"Alert {eventId}\", \"Exception\": \"{exception.ToString()}\", \"State\": {{ \"{{OriginalFormat}}\": \"Alert {{EventId}}\" }} }}", result1);
            var logEvent2 = new LogEventInfo(LogLevel.Error, "MyLogger", null, "Alert {EventId_Id}", new object[] { eventId }, exception);
            var result2   = layout.Render(logEvent2);

            Assert.Equal($"{{ \"Timestamp\": \"{logEvent2.TimeStamp.ToUniversalTime().ToString("O")}\", \"EventId\": {eventId}, \"LogLevel\": \"Error\", \"Category\": \"MyLogger\", \"Message\": \"Alert {eventId}\", \"Exception\": \"{exception.ToString()}\", \"State\": {{ \"{{OriginalFormat}}\": \"Alert {{EventId_Id}}\" }} }}", result2);
        }
        public void MicrosoftConsoleJsonLayout_NullEvent()
        {
            var layout = new MicrosoftConsoleJsonLayout()
            {
                TimestampFormat = null
            };
            var result = layout.Render(LogEventInfo.CreateNullEvent());

            Assert.Contains("{ \"EventId\": 0, \"LogLevel\": \"Critical\", \"State\": { } }", result);
        }