public void LoggerCanRenderLogMessage() { var sink = new TestSink(); var serilogSink = new DirectSubmissionSerilogSink(sink, DirectSubmissionLogLevel.Debug); var level = LogEventLevel.Error; var rawText = "someValue"; GetSerilogMessageProcessor() .Process("This is {SomeValue}", new object[] { "someValue" }, out var parsedTemplate, out var boundProperties); var logEvent = new LogEvent(DateTimeOffset.Now, level, exception: null, parsedTemplate, boundProperties); var proxy = logEvent.DuckCast <ILogEvent>(); serilogSink.Emit(proxy); var log = sink.Events.Should().ContainSingle().Subject; var sb = new StringBuilder(); var formatter = LogSettingsHelper.GetFormatter(); log.Format(sb, formatter); var formatted = sb.ToString(); formatted.Should() .NotBeNullOrWhiteSpace() .And.Contain(rawText) .And.Contain($@"This is \""{rawText}\"""); }
public void CanReverseDuckTypeSerilogSink() { var sink = new DirectSubmissionSerilogSink( new TestSink(), DirectSubmissionLogLevel.Information); Type sinkType = typeof(ILogEventSink); var duckSink = (ILogEventSink)sink.DuckImplement(sinkType); GetSerilogMessageProcessor() .Process("This is {SomeValue}", new object[] { "someValue" }, out var parsedTemplate, out var boundProperties); var logEvent = new LogEvent(DateTimeOffset.Now, LogEventLevel.Information, exception: null, parsedTemplate, boundProperties); duckSink.Emit(logEvent); }
public void ShouldNotEmitLogWhenNotEnabled() { var sink = new TestSink(); var serilogSink = new DirectSubmissionSerilogSink(sink, DirectSubmissionLogLevel.Warning); var level = LogEventLevel.Information; GetSerilogMessageProcessor() .Process("This is {SomeValue}", new object[] { "someValue" }, out var parsedTemplate, out var boundProperties); var logEvent = new LogEvent(DateTimeOffset.Now, level, exception: null, parsedTemplate, boundProperties); var proxy = logEvent.DuckCast <ILogEvent>(); serilogSink.Emit(proxy); sink.Events.Should().BeEmpty(); }
public void LoggerEnqueuesLogMessage() { var sink = new TestSink(); var serilogSink = new DirectSubmissionSerilogSink(sink, DirectSubmissionLogLevel.Debug); var level = LogEventLevel.Error; GetSerilogMessageProcessor() .Process("This is {SomeValue}", new object[] { "someValue" }, out var parsedTemplate, out var boundProperties); var logEvent = new LogEvent(DateTimeOffset.Now, level, exception: null, parsedTemplate, boundProperties); var proxy = logEvent.DuckCast <ILogEvent>(); serilogSink.Emit(proxy); sink.Events.Should().ContainSingle(); }