Beispiel #1
0
        public void WhenOneListenerTwoSources()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockConsoleListenerEventSource.Logger;
            var logger2   = MockConsoleListenerEventSource2.Logger;

            string message      = string.Concat("Message ", Guid.NewGuid());
            string errorMessage = string.Concat("Error ", Guid.NewGuid());

            TestScenario.With1Listener(
                new EventSource[] { logger, logger2 },
                listener =>
            {
                listener.LogToConsole();
                listener.EnableEvents(logger, EventLevel.LogAlways);
                listener.EnableEvents(logger2, EventLevel.LogAlways);
                logger.Informational(message);
                logger2.Informational(message);
            });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "100");
        }
Beispiel #2
0
        public void WhenOneSourceTwoListenersConcurrently()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockConsoleListenerEventSource.Logger;

            TestScenario.With2Listeners(
                logger,
                (listener1, listener2) =>
            {
                listener1.LogToConsole();
                listener2.LogToConsole();
                int maxLoggedEntries   = 9;
                string criticalMessage = string.Concat("CriticalMessage");
                string infoMessage     = string.Concat("InfoMessage");
                listener1.EnableEvents(logger, EventLevel.Critical);
                listener2.EnableEvents(logger, EventLevel.Critical);
                Parallel.Invoke(Enumerable.Range(0, maxLoggedEntries).Select(i =>
                                                                             new Action(() =>
                {
                    logger.Critical(i + criticalMessage);
                })).ToArray());
            });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
        }
Beispiel #3
0
        public void WhenActivityIdAndRelatedActivityId()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockConsoleListenerEventSource.Logger;

            var activityId         = Guid.NewGuid();
            var relatedActivityId  = Guid.NewGuid();
            var previousActivityId = Guid.Empty;

            EventSource.SetCurrentThreadActivityId(activityId, out previousActivityId);
            TestScenario.With1Listener(
                logger,
                listener =>
            {
                listener.LogToConsole();
                listener.EnableEvents(logger, EventLevel.Critical);
                logger.CriticalWithRelatedActivityId("This is to log critical in Console", relatedActivityId);
            });

            EventSource.SetCurrentThreadActivityId(previousActivityId);

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "800");
            StringAssert.Contains(entry, "Keywords : None");
            Assert.AreEqual(DefaultConsoleColorMapper.Critical, consoleOutputInterceptor.OutputForegroundColor);
            StringAssert.Contains(entry, "ActivityId : " + activityId.ToString());
            StringAssert.Contains(entry, "RelatedActivityId : " + relatedActivityId.ToString());
        }
        public void WhenSourceEnabledAndNotSpecifyingKeyword()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole();
                eventListener.EnableEvents(MockConsoleListenerEventSource.Logger, EventLevel.LogAlways);
                MockConsoleListenerEventSource.Logger.InfoWithKeywordDiagnostic("Info with keyword Diagnostic");
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNull(entry);
        }
Beispiel #5
0
        public void WhenLoggingErrorOCcurs()
        {
            var mockConsole = new MockConsoleOutputInterceptor();
            var logger      = TestEventSource.Logger;

            TestScenario.With1Listener(
                logger,
                (listener, errorsListener) =>
            {
                listener.LogToConsole(new MockFormatter(true));
                listener.EnableEvents(logger, EventLevel.LogAlways);
                logger.EventWithPayload("payload1", 100);

                StringAssert.Contains(errorsListener.ToString(), "System.InvalidOperationException: Operation is not valid due to the current state of the object.");
                Assert.AreEqual(string.Empty, mockConsole.Ouput);
            });
        }
        public void WhenLoggingErrorOCcurs()
        {
            InMemoryEventListener collectErrorsListener;
            var mockConsole = new MockConsoleOutputInterceptor();

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole(new MockFormatter(true));
                eventListener.EnableEvents(TestEventSource.Logger, EventLevel.LogAlways);
                collectErrorsListener = new InMemoryEventListener(true);
                collectErrorsListener.EnableEvents(SemanticLoggingEventSource.Log, EventLevel.Error, SemanticLoggingEventSource.Keywords.Sink);
                TestEventSource.Logger.EventWithPayload("payload1", 100);
            }

            StringAssert.Contains(collectErrorsListener.ToString(), "System.InvalidOperationException: Operation is not valid due to the current state of the object.");
            Assert.AreEqual(string.Empty, mockConsole.Ouput);
        }
        public void WhenHighEventIds()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockHighEventIdEventSource.HigheventIdLogger;

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole();
                eventListener.EnableEvents(logger, EventLevel.Warning);
                logger.Warning();
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
        }
        public void WhenDefaultColorMappingForVerbose()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole();
                eventListener.EnableEvents(MockConsoleListenerEventSource.Logger, EventLevel.LogAlways);
                MockConsoleListenerEventSource.Logger.Verbose("This is to log verbose in Console");
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "400");
            Assert.AreEqual(DefaultConsoleColorMapper.Verbose, consoleOutputInterceptor.OutputForegroundColor);
        }
        public void WhenEnablingAllKeywords()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter("----", "====", EventLevel.LogAlways);

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.EnableEvents(MockConsoleListenerEventSource.Logger, EventLevel.LogAlways, Keywords.All);
                eventListener.LogToConsole(formatter);
                MockConsoleListenerEventSource.Logger.InfoWithKeywordDiagnostic("Info with keyword Diagnostic");
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            Assert.IsTrue(entry.Contains("ProviderId : "));
            Assert.IsTrue(entry.Contains("\r\nEventId : 1020\r\nKeywords : 4\r\nLevel : Informational\r\nMessage : \r\nOpcode : Info\r\nTask : 1\r\nVersion : 0\r\nPayload : [message : Info with keyword Diagnostic] \r\nEventName : PageInfo\r\nTimestamp : "));
        }
        public void WhenEventWithTaskNone()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole();
                eventListener.EnableEvents(MockConsoleListenerEventSource.Logger, EventLevel.LogAlways);
                MockConsoleListenerEventSource.Logger.Critical("Critical with taskname or eventname as Critical");
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            Assert.IsTrue(entry.Contains("ProviderId : "));
            Assert.IsTrue(entry.Contains("\r\nEventId : 200\r\nKeywords : None\r\nLevel : Critical\r\nMessage : Functional Test\r\nOpcode : Info\r\nTask : 65334\r\nVersion : 0\r\nPayload : [message : Critical with taskname or eventname as Critical] \r\nEventName : CriticalInfo\r\nTimestamp : "));
        }
        public void WhenPayloadHasDifferentTypes()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockEventSourceNoTask.Logger;

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole();
                eventListener.EnableEvents(logger, EventLevel.LogAlways);
                logger.DifferentTypes("testString", 500000);
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, @"strArg : testString");
            StringAssert.Contains(entry, @"longArg : 500000");
        }
        public void WhenLowEventIds()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockNegativeEventIdEventSource.LoweventIdLogger;

            try
            {
                using (var eventListener = new ObservableEventListener())
                {
                    eventListener.EnableEvents(logger, EventLevel.Warning);
                    Assert.IsFalse(true, "Should throw when calling EnableEvents.");
                }
            }
            catch (ArgumentException ex)
            {
                Assert.AreEqual("Event IDs must be positive integers.", ex.Message);
            }
        }
        public void WhenEventHasRawMessageAndFormattedMessage()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockEventSourceNoTask.Logger;

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole();
                eventListener.EnableEvents(logger, EventLevel.LogAlways);
                logger.Informational("testing");
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            Assert.IsTrue(entry.Count() > 0);
            StringAssert.Contains(entry, "message param");
        }
        public void WhenCriticalVerbosityForFormatter()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole(formatter);
                formatter.VerbosityThreshold = EventLevel.Critical;
                eventListener.EnableEvents(MockConsoleListenerEventSource.Logger, EventLevel.Critical);
                MockConsoleListenerEventSource.Logger.Critical("This is to log critical in Console");
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "200");
            StringAssert.Contains(entry, "Keywords : None");
            Assert.AreEqual(DefaultConsoleColorMapper.Critical, consoleOutputInterceptor.OutputForegroundColor);
        }
Beispiel #15
0
        public void WhenDefaultColorMappingForCritical()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockConsoleListenerEventSource.Logger;

            TestScenario.With1Listener(
                logger,
                listener =>
            {
                listener.LogToConsole();
                listener.EnableEvents(logger, EventLevel.LogAlways);
                logger.Critical("This is to log critical in Console");
            });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "200");
            Assert.AreEqual(DefaultConsoleColorMapper.Critical, consoleOutputInterceptor.OutputForegroundColor);
        }
        public void WhenSingleLineTextFormatter()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole(formatter);
                eventListener.EnableEvents(MockConsoleListenerEventSource.Logger, EventLevel.Error);
                MockConsoleListenerEventSource.Logger.Critical("This is to log critical in Console");
                MockConsoleListenerEventSource.Logger.Verbose("This is should not be logged in Console");
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            Assert.IsFalse(entry.Contains("This is should not be logged in Console"));
            Assert.IsTrue(entry.Contains("This is to log critical in Console"));
            Assert.IsTrue(entry.Contains("\r\nProviderId : "));
            Assert.IsTrue(entry.Contains("\r\nEventId : 200\r\nKeywords : None\r\nLevel : Critical\r\nMessage : Functional Test\r\nOpcode : Info\r\nTask : 65334\r\nVersion : 0\r\nPayload : [message : This is to log critical in Console] \r\nEventName : CriticalInfo\r\nTimestamp :"));
        }
Beispiel #17
0
        public void WhenEventWithTaskName()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockConsoleListenerEventSource.Logger;

            TestScenario.With1Listener(
                logger,
                listener =>
            {
                listener.LogToConsole();
                listener.EnableEvents(logger, EventLevel.LogAlways, Keywords.All);
                logger.CriticalWithTaskName("Critical with taskname Page");
            });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            Assert.IsTrue(entry.Contains("ProviderId : "));
            Assert.IsTrue(entry.Contains("\r\nEventId : 1500\r\nKeywords : 1\r\nLevel : Critical\r\nMessage : \r\nOpcode : Info\r\nTask : 1\r\nVersion : 0\r\nPayload : [message : Critical with taskname Page] \r\nEventName : PageInfo\r\nTimestamp : "));
        }
        public void WhenEventWithMessageInAttribute()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter      = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var eventformatter = new EventTextFormatter("----", "-----", EventLevel.Informational);

            eventformatter.DateTimeFormat = "dd/MM/yyyy";
            var logger = TestEventSourceNoAttributes.Logger;

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole(eventformatter);
                eventListener.EnableEvents(logger, EventLevel.LogAlways);
                logger.ObjectArrayEvent4(1000, "stringstringarg10", 2000, "stringstringarg20", 3000);
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "[arg0 : 1000] [arg1 : stringstringarg10] [arg2 : 2000] [arg3 : stringstringarg20] [arg4 : 3000]");
            StringAssert.Contains(entry, "Message : Check if it is logged");
        }
        public void WhenEventWithMessageInAttributeUsingXml()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter    = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var xmlFormatter = new XmlEventTextFormatter();

            xmlFormatter.DateTimeFormat = "dd/MM/yyyy";
            var logger = TestEventSourceNoAttributes.Logger;

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.LogToConsole(xmlFormatter);
                eventListener.EnableEvents(logger, EventLevel.LogAlways);
                logger.ObjectArrayEvent4(1000, "stringstringarg10", 2000, "stringstringarg20", 3000);
            }

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "<Data Name=\"arg0\">1000</Data><Data Name=\"arg1\">stringstringarg10</Data><Data Name=\"arg2\">2000</Data><Data Name=\"arg3\">stringstringarg20</Data><Data Name=\"arg4\">3000</Data>");
            StringAssert.Contains(entry, "<Message>Check if it is logged</Message>");
        }
Beispiel #20
0
        public void WhenPayloadHasDifferentTypesAndNull()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockEventSourceNoTask.Logger;

            TestScenario.With1Listener(
                logger,
                listener =>
            {
                listener.LogToConsole();
                listener.EnableEvents(logger, EventLevel.LogAlways);
                logger.DifferentTypes(null, 500000);
            });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            Assert.IsTrue(entry.Count() > 0);
            StringAssert.Contains(entry, @"strArg : ");
            StringAssert.Contains(entry, @"longArg : 500000");
        }
Beispiel #21
0
        public void WhenThreadId()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockConsoleListenerEventSource.Logger;

            int threadId = ThreadHelper.GetCurrentUnManagedThreadId();

            TestScenario.With1Listener(
                logger,
                listener =>
            {
                listener.LogToConsole();
                listener.EnableEvents(logger, EventLevel.Critical);
                logger.Critical("This is to log critical in Console");
            });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "ThreadId : " + threadId);
        }
        public void WhenMultipleEvents()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockConsoleListenerEventSource.Logger;

            using (var eventListener = new ObservableEventListener())
            {
                eventListener.EnableEvents(logger, EventLevel.LogAlways);
                eventListener.LogToConsole();
                for (int n = 0; n < 300; n++)
                {
                    logger.Informational("Some message to console " + n);
                }
            }

            var output = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c));

            Assert.IsNotNull(output);
            StringAssert.Contains(output.First(), "Some message to console 0");
            StringAssert.Contains(output.First(), "Some message to console 299");
        }
        public void WhenOneSourceTwoListeners()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);

            using (var eventListener = new ObservableEventListener())
                using (var eventListener2 = new ObservableEventListener())
                {
                    eventListener.LogToConsole(new EventTextFormatter(), null);
                    eventListener2.LogToConsole();
                    string errorMessage = string.Concat("Error ", Guid.NewGuid());
                    string infoMessage  = string.Concat("Message", Guid.NewGuid());
                    eventListener2.EnableEvents(MockConsoleListenerEventSource.Logger, EventLevel.Error);
                    eventListener.EnableEvents(MockConsoleListenerEventSource.Logger, EventLevel.Informational);
                    MockConsoleListenerEventSource.Logger.Informational(infoMessage);
                    MockConsoleListenerEventSource.Logger.Error(errorMessage);

                    var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();
                    Assert.IsNotNull(entry);
                    StringAssert.Contains(entry, "100");
                    StringAssert.Contains(entry, "300");
                }
        }
Beispiel #24
0
        public void WhenSourceEnabledAndNotSpecifyingKeyword()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var logger    = MockConsoleListenerEventSource.Logger;

            TestScenario.With1Listener(
                logger,
                listener =>
            {
                listener.LogToConsole();
                listener.EnableEvents(logger, EventLevel.LogAlways);
                logger.InfoWithKeywordDiagnostic("Info with keyword Diagnostic");
            });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

#if EVENT_SOURCE_PACKAGE
            Assert.IsNotNull(entry);
#else
            Assert.IsNull(entry);
#endif
        }
Beispiel #25
0
        public void WhenEventWithMessageInAttributeUsingJson()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter     = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var jsonFormatter = new JsonEventTextFormatter();

            jsonFormatter.DateTimeFormat = "dd/MM/yyyy";
            var logger = TestEventSourceNoAttributes.Logger;

            TestScenario.With1Listener(
                logger,
                listener =>
            {
                listener.LogToConsole(jsonFormatter);
                listener.EnableEvents(logger, EventLevel.LogAlways);
                logger.ObjectArrayEvent4(1000, "stringstringarg10", 2000, "stringstringarg20", 3000);
            });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();

            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "{\"arg0\":1000,\"arg1\":\"stringstringarg10\",\"arg2\":2000,\"arg3\":\"stringstringarg20\",\"arg4\":3000}");
            StringAssert.Contains(entry, "Check if it is logged");
        }