Beispiel #1
0
        public void AppenderPropertiesSetConfigurationValues()
        {
            var config   = new Config();
            var appender = new LogglyAppender(config, Mock.Of <ILogglyFormatter>(), Mock.Of <ILogglyAsyncBuffer>());

            appender.RootUrl                  = "root-url";
            appender.BufferSize               = 123;
            appender.CustomerToken            = "test-token";
            appender.GlobalContextKeys        = "global-keys";
            appender.LogicalThreadContextKeys = "thread-keys";
            appender.NumberOfInnerExceptions  = 123;
            appender.Tag              = "test-tag";
            appender.SendInterval     = TimeSpan.FromSeconds(123);
            appender.TimeoutInSeconds = 123;
            appender.UserAgent        = "user-agent";

            config.Should().BeEquivalentTo(new
            {
                RootUrl                  = "root-url",
                BufferSize               = 123,
                CustomerToken            = "test-token",
                GlobalContextKeys        = "global-keys",
                LogicalThreadContextKeys = "thread-keys",
                NumberOfInnerExceptions  = 123,
                Tag              = "test-tag",
                SendInterval     = TimeSpan.FromSeconds(123),
                TimeoutInSeconds = 123,
                UserAgent        = "user-agent"
            });
        }
Beispiel #2
0
        public void Flush_FlushesBuffer()
        {
            var bufferMock = new Mock <ILogglyAsyncBuffer>();

            bufferMock.Setup(x => x.Flush(It.IsAny <TimeSpan>())).Returns(true);

            var appender = new LogglyAppender(new Config(), Mock.Of <ILogglyFormatter>(), bufferMock.Object);

            var result = appender.Flush(100);

            result.Should().BeTrue("flush should be successful");
            bufferMock.Verify(x => x.Flush(TimeSpan.FromMilliseconds(100)));
        }
Beispiel #3
0
        private LogglyAppender GetLogglyAppender()
        {
            if (this.LogglySettings == null)
            {
                return(null);
            }

            var logglyAppender = new LogglyAppender
            {
                RootUrl       = "https://logs-01.loggly.com/",
                CustomerToken = this.LogglySettings.LogglyCustomerToken,
                Tag           = this.LogglySettings.LogglyTag
            };

            logglyAppender.ActivateOptions();

            return(logglyAppender);
        }
Beispiel #4
0
        public void Append_BuffersMessageToBeSent()
        {
            var formatterMock = new Mock <ILogglyFormatter>();

            formatterMock.Setup(x => x.ToJson(It.IsAny <LoggingEvent>(), It.IsAny <string>()))
            .Returns <LoggingEvent, string>((e, m) => $"Formatted: {e.RenderedMessage}");
            var bufferMock = new Mock <ILogglyAsyncBuffer>();

            var appender = new LogglyAppender(new Config(), formatterMock.Object, bufferMock.Object);

            var evt = new LoggingEvent(new LoggingEventData
            {
                Message = "test log"
            });

            appender.DoAppend(evt);

            bufferMock.Verify(x => x.BufferForSend("Formatted: test log"), "message wasn't enqueued to be sent");
        }
Beispiel #5
0
        protected IntegrationTest()
        {
            // setup HTTP client mock so that we can wait for sent message and inspect it
            _messageSent = new ManualResetEvent(false);

            _messageStream = new MemoryStream();
            var webRequestMock = new Mock <WebRequest>();

            webRequestMock.Setup(x => x.GetRequestStream()).Returns(_messageStream);
            webRequestMock.Setup(x => x.GetResponse())
            .Returns(() =>
            {
                _messageSent.Set();
                return(Mock.Of <WebResponse>());
            });

            // use mocked web request
            LogglyClient.WebRequestFactory = (config, url) => webRequestMock.Object;

            var logRepository   = LogManager.GetRepository(Assembly.GetEntryAssembly());
            var currentFileName = Path.GetFileName(Assembly.GetExecutingAssembly().Location);

            log4net.Config.XmlConfigurator.Configure(logRepository, new FileInfo(currentFileName + ".config"));

            _log = LogManager.GetLogger(GetType());

            var appenders = logRepository.GetAppenders();

            _logglyAppender = (LogglyAppender)appenders[0];

            ThreadContext.Properties.Clear();
            LogicalThreadContext.Properties.Clear();
            GlobalContext.Properties.Clear();

            // thread name can be set just once so we need this safeguard
            if (string.IsNullOrEmpty(Thread.CurrentThread.Name))
            {
                Thread.CurrentThread.Name = TestThreadName;
            }
        }
Beispiel #6
0
 /// <summary>
 /// Simple partial method for updating the Loggly Appender settings such as the inputKey.
 /// This method is to be defined in the partial App class in App.xaml.secret.cs
 /// </summary>
 partial void UpdateLogglyAppenderSettings(LogglyAppender loggly);