Exemple #1
0
        public void ShouldNotEmitLogWhenNotEnabled()
        {
            var sink     = new Log4NetHelper.TestSink();
            var appender = Log4NetHelper.GetAppender(sink, DirectSubmissionLogLevel.Warning);

            var level    = Level.Info;
            var logEvent = new LoggingEvent(
                new LoggingEventData
            {
                Message    = "This is {SomeValue}",
                LoggerName = nameof(DirectSubmissionLog4NetAppenderTests),
#if LOG4NET_2
                TimeStampUtc = DateTime.UtcNow,
#else
                TimeStamp = DateTime.Now,
#endif
                Level      = level,
                Properties = new PropertiesDictionary {
                    ["SomeValue"] = "someValue!"
                }
            });

            var proxy = Log4NetHelper.DuckCastLogEvent(logEvent);

            appender.DoAppend(proxy);

            sink.Events.Should().BeEmpty();
        }
Exemple #2
0
        public void LoggerEnqueuesLogMessage()
        {
            var sink     = new Log4NetHelper.TestSink();
            var appender = Log4NetHelper.GetAppender(sink, DirectSubmissionLogLevel.Debug);

            var level    = Level.Error;
            var logEvent = new LoggingEvent(
                new LoggingEventData
            {
                Message    = "This is {SomeValue}",
                LoggerName = nameof(DirectSubmissionLog4NetAppenderTests),
#if LOG4NET_2
                TimeStampUtc = DateTime.UtcNow,
#else
                TimeStamp = DateTime.Now,
#endif
                Level      = level,
                Properties = new PropertiesDictionary {
                    ["SomeValue"] = "someValue!"
                }
            });

            var proxy = Log4NetHelper.DuckCastLogEvent(logEvent);

            appender.DoAppend(proxy);

            sink.Events.Should().ContainSingle();
        }
Exemple #3
0
        public void LoggerIncludesPropertiesInLog()
        {
            var formatter      = LogSettingsHelper.GetFormatter();
            var memoryAppender = new MemoryAppender();
            var sink           = new Log4NetHelper.TestSink();
            var appender       = Log4NetHelper.GetAppender(sink, DirectSubmissionLogLevel.Debug);
            var appenderProxy  = (IAppender)appender.DuckImplement(typeof(IAppender));
            var repository     = log4net.LogManager.GetRepository();

            BasicConfigurator.Configure(repository, memoryAppender, appenderProxy);
            var logger = LogManager.GetLogger(typeof(DirectSubmissionLog4NetAppenderTests));

            // Set an ambient property
            var someKey   = "some key";
            var someValue = "some Value";

            log4net.ThreadContext.Properties[someKey] = someValue;

            // write the log
            var message = "This is a value";

            logger.Error(message);

            // remove the context before rendering
            log4net.ThreadContext.Properties.Remove(someKey);

            var logEvent = sink.Events.Should().ContainSingle().Subject;

            // get the rendered log
            var sb = new StringBuilder();

            logEvent.Format(sb, formatter);
            var log = sb.ToString();

            log.Should()
            .Contain(message)
            .And.Contain(someKey)
            .And.Contain(someValue)
            .And.Contain(DirectSubmissionLogLevelExtensions.Error);
        }