public void MicrosoftConsoleJsonLayout_IncludeScopesEvent() { var logFactory = new LogFactory().Setup().LoadConfiguration(builder => { var layout = new MicrosoftConsoleJsonLayout() { IncludeScopes = true }; builder.ForLogger().WriteTo(new NLog.Targets.MemoryTarget("test") { Layout = layout }); }).LogFactory; var logger = logFactory.GetCurrentClassLogger(); var exception = new ArgumentException("Test"); var eventId = 42; using var requestScope = logger.PushScopeNested("Request Started"); using var activityScope = logger.PushScopeNested("Activity Started"); var logEvent = new LogEventInfo(LogLevel.Error, null, null, "Alert {EventId}", new object[] { eventId }, exception); logger.Log(logEvent); var result = logFactory.Configuration.FindTargetByName <NLog.Targets.MemoryTarget>("test")?.Logs?.FirstOrDefault(); Assert.Equal($"{{ \"Timestamp\": \"{logEvent.TimeStamp.ToUniversalTime().ToString("O")}\", \"EventId\": {eventId}, \"LogLevel\": \"Error\", \"Category\": \"{typeof(MicrosoftConsoleJsonLayoutTests).FullName}\", \"Message\": \"Alert {eventId}\", \"Exception\": \"{exception.ToString()}\", \"State\": {{ \"{{OriginalFormat}}\": \"Alert {{EventId}}\" }}, \"Scopes\": [ \"Request Started\", \"Activity Started\" ] }}", result); }
public void MicrosoftConsoleJsonLayout_NullEvent() { var layout = new MicrosoftConsoleJsonLayout() { TimestampFormat = null }; var result = layout.Render(LogEventInfo.CreateNullEvent()); Assert.Contains("{ \"EventId\": 0, \"LogLevel\": \"Critical\", \"State\": { } }", result); }
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); }