Пример #1
0
        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}\""");
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }
Пример #4
0
        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();
        }