Exemple #1
0
        public void WhenSinkIsRemoved()
        {
            var fileName = "flatFileReconfig.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProc.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListener.xml", configFile);

            TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true);

            TestScenario.WithConfiguration(
                svcConfiguration,
                () =>
            {
                TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);
                MockEventSourceOutProc.Logger.LogSomeMessage("some message to new added flat file");
                var entries = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 1, "======");
                Assert.AreEqual(1, entries.Count());
                StringAssert.Contains(entries.First(), "some message to new added flat file");

                UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\NoListener.xml", configFile);
                TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-dummyListener", 1);
                TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 0);

                MockEventSourceOutProc.Logger.LogSomeMessage("this message should not be logged");
                var entries2 = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 1, "======");
                Assert.AreEqual(1, entries2.Count());
            });

            File.Delete(configFile);
        }
        public void ReconfigListenerAdded()
        {
            var fileName = "flatFileReconfig.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProc.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\NoListener.xml", configFile);

            IEnumerable <string> entries = null;

            using (TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true))
                using (TraceEventService collector = new TraceEventService(svcConfiguration))
                {
                    collector.Start();
                    try
                    {
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig", 1);
                        UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListener.xml", configFile);
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);

                        MockEventSourceOutProc.Logger.LogSomeMessage("some message to new added flat file");
                        entries = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 1, "======");
                    }
                    finally
                    {
                        collector.Stop();
                        File.Delete(configFile);
                    }
                }

            Assert.AreEqual(1, entries.Count());
            StringAssert.Contains(entries.First(), "some message to new added flat file");
        }
        public void ReconfigSameConfigTwiceWith2Listeners()
        {
            var fileName = "flatFileReconfig.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProc.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListener.xml", configFile);

            TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true);

            using (TraceEventService collector = new TraceEventService(svcConfiguration))
            {
                collector.Start();

                try
                {
                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);
                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-dummyListener", 1);

                    UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListener.xml", configFile);

                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);
                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-dummyListener", 1);
                }
                finally
                {
                    collector.Stop();
                    File.Delete(configFile);
                }
            }
        }
Exemple #4
0
        public void WhenConnfigUpdatedTwiceWithTwoListeners()
        {
            var fileName = "flatFileReconfig.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProc.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListener.xml", configFile);

            TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true);

            TestScenario.WithConfiguration(
                svcConfiguration,
                () =>
            {
                TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);
                TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-dummyListener", 1);

                UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListener.xml", configFile);

                TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);
                TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-dummyListener", 1);
            });

            File.Delete(configFile);
        }
        public void ReconfigTwoSourcesListenerAddedThenRemoved()
        {
            var fileName = "flatFileReconfig.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProc.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerTwoSources.xml", configFile);

            TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true);

            using (TraceEventService collector = new TraceEventService(svcConfiguration))
            {
                collector.Start();
                try
                {
                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);

                    MockEventSourceOutProc.Logger.LogSomeMessage("some message to new added flat file");
                    var entries = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 1, "======");
                    Assert.AreEqual(1, entries.Count());
                    StringAssert.Contains(entries.First(), "some message to new added flat file");

                    UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerTwoSourcesSameListener.xml", configFile);
                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);

                    MockEventSourceOutProc.Logger.LogSomeMessage("some message to new added flat file2");
                    MockEventSourceOutProc2.Logger.LogSomeMessage("some message to new added flat file3");
                    var entries2 = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 3, "======");
                    Assert.AreEqual(3, entries2.Count());
                    StringAssert.Contains(entries2.First(), "some message to new added flat file");
                    StringAssert.Contains(entries2.ElementAt(1), "some message to new added flat file2");
                    StringAssert.Contains(entries2.Last(), "some message to new added flat file3");

                    UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerTwoSources.xml", configFile);
                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);

                    MockEventSourceOutProc.Logger.LogSomeMessage("last message to new added flat file");
                    var entries3 = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 4, "======");
                    Assert.AreEqual(4, entries3.Count());
                    StringAssert.Contains(entries3.Last(), "last message to new added flat file");

                    UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerTwoSourcesNoListener.xml", configFile);
                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 0);
                }
                finally
                {
                    collector.Stop();
                    File.Delete(configFile);
                }
            }
        }
        public void WhenSomeSessionNamesAreInvalid()
        {
            File.Delete("sessionLength.log");
            File.Delete("sessionLength2.log");

            var cfg = TraceEventServiceConfiguration.Load("Configurations\\SessionNameLongInOneSink.xml");

            using (TraceEventService svc = new TraceEventService(cfg))
            {
                svc.Start();

                Assert.IsTrue(TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfigService", 3));
                Assert.IsTrue(File.Exists("sessionLength.log"));
                Assert.IsTrue(File.Exists("sessionLength2.log"));
            }
        }
Exemple #7
0
        public void WhenSomeSessionNamesAreInvalid()
        {
            File.Delete("sessionLength.log");
            File.Delete("sessionLength2.log");

            var svcConfiguration = TraceEventServiceConfiguration.Load("Configurations\\SessionNameLongInOneSink.xml");

            TestScenario.WithConfiguration(
                svcConfiguration,
                () =>
            {
                Assert.IsTrue(TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfigService", 3));
                Assert.IsTrue(File.Exists("sessionLength.log"));
                Assert.IsTrue(File.Exists("sessionLength2.log"));
            });
        }
Exemple #8
0
        public void WhenSinkAddedWithErrorDoesNotRecycle()
        {
            var fileName = "flatfileListenerOk.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProc.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\NoListener.xml", configFile);

            TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true);

            TestScenario.WithConfiguration(
                svcConfiguration,
                () =>
            {
                using (var collectErrorsListener = new InMemoryEventListener())
                {
                    collectErrorsListener.EnableEvents(SemanticLoggingEventSource.Log, EventLevel.LogAlways, Keywords.All);
                    try
                    {
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig", 1);
                        UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerError.xml", configFile);
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 0);
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-2flatFileListener", 1);

                        MockEventSourceOutProc.Logger.LogSomeMessage("Some informational from a new listener.");
                        var entries2 = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 1, "======");
                        Assert.AreEqual(1, entries2.Count());
                        StringAssert.Contains(entries2.First(), "Some informational from a new listener.");

                        collectErrorsListener.WaitEvents.Wait(TimeSpan.FromSeconds(3));
                        StringAssert.Contains(collectErrorsListener.ToString(), "One or more errors occurred when loading the TraceEventService configuration file.");
                        StringAssert.Contains(collectErrorsListener.ToString(), "The given path's format is not supported.");
                        StringAssert.Contains(collectErrorsListener.ToString(), "The configuration was partially successfully loaded. Check logs for further error details.");
                    }
                    finally
                    {
                        File.Delete(configFile);
                        collectErrorsListener.DisableEvents(SemanticLoggingEventSource.Log);
                    }
                }
            });
        }
        public void ReconfigChangeSessionRecycles()
        {
            var fileName = "flatFileReconfig.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProc.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListener.xml", configFile);

            TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true);

            using (TraceEventService collector = new TraceEventService(svcConfiguration))
            {
                try
                {
                    collector.Start();

                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);
                    TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-dummyListener", 1);

                    UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerDiffSession.xml", configFile);
                }
                finally
                {
                    collector.Stop();
                    File.Delete(configFile);
                }
            }

            //using (TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load("Configurations\\Reconfiguration\\FlatFileListenerDiffSession.xml"))
            //using (TraceEventService collector = new TraceEventService(svcConfiguration))
            //{
            //    collector.Start();

            //    Assert.AreEqual(0, TraceSessionHelper.CountSessionStartingWith("ServiceReconfig-flatFileListener"));
            //    Assert.AreEqual(0, TraceSessionHelper.CountSessionStartingWith("ServiceReconfig-dummyListener"));

            //    Assert.AreEqual(1, TraceSessionHelper.CountSessionStartingWith("ServiceReconfig2-flatFileListener"));
            //    Assert.AreEqual(1, TraceSessionHelper.CountSessionStartingWith("ServiceReconfig2-dummyListener"));
            //}
        }
        public void ReconfigListenerUpdateKeywordFiltered()
        {
            var fileName = "flatFileReconfig.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProcKeywords.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerNoKeywordFiltered.xml", configFile);

            using (TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true))
                using (TraceEventService collector = new TraceEventService(svcConfiguration))
                {
                    collector.Start();
                    try
                    {
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);

                        MockEventSourceOutProcKeywords.Logger.InformationalPage("No keyword filtering");
                        var entries = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 1, "======");
                        Assert.AreEqual(1, entries.Count());
                        StringAssert.Contains(entries.First(), "No keyword filtering");

                        UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerKeywordFiltered.xml", configFile);
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);

                        MockEventSourceOutProcKeywords.Logger.InformationalPage("InformationalPage ok");
                        MockEventSourceOutProcKeywords.Logger.InformationalDatabase("InformationalDatabase ok");
                        MockEventSourceOutProcKeywords.Logger.InformationalDiagnostic("Diagnostic not ok");
                        var entries2 = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 3, "======");
                        Assert.AreEqual(3, entries2.Count());
                        StringAssert.Contains(entries2.First(), "No keyword filtering");
                        StringAssert.Contains(entries2.ElementAt(1).ToString(), "InformationalPage ok");
                        StringAssert.Contains(entries2.Last(), "InformationalDatabase ok");
                    }
                    finally
                    {
                        collector.Stop();
                        File.Delete(configFile);
                    }
                }
        }
        public void ReconfigListenerUpdateLevelFiltered()
        {
            var fileName = "flatFileReconfig.log";

            File.Delete(fileName);
            var logger     = MockEventSourceOutProc.Logger;
            var configFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Configurations\\Reconfiguration\\temp\\configFile.xml";

            UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListener.xml", configFile);

            using (TraceEventServiceConfiguration svcConfiguration = TraceEventServiceConfiguration.Load(configFile, true))
                using (TraceEventService collector = new TraceEventService(svcConfiguration))
                {
                    collector.Start();
                    try
                    {
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);
                        MockEventSourceOutProc.Logger.LogSomeMessage("some message to new added flat file");
                        var entries = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 1, "======");
                        Assert.AreEqual(1, entries.Count());
                        StringAssert.Contains(entries.First(), "some message to new added flat file");

                        UpdateServiceConfigurationFile("Configurations\\Reconfiguration\\FlatFileListenerLevelFiltered.xml", configFile);
                        TraceSessionHelper.WaitAndAssertCountOfSessions("ServiceReconfig-flatFileListener", 1);

                        MockEventSourceOutProcLevelFiltered.Logger.LogSomeMessage("this message should not be logged");
                        var entries2 = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 1, "======");
                        Assert.AreEqual(1, entries2.Count());

                        MockEventSourceOutProcLevelFiltered.Logger.Critical("this critical message should pass the filter");
                        entries2 = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 2, "======");
                        Assert.AreEqual(2, entries2.Count());
                        StringAssert.Contains(entries2.First(), "some message to new added flat file");
                        StringAssert.Contains(entries2.Last(), "this critical message should pass the filter");
                    }
                    finally
                    {
                        collector.Stop();
                        File.Delete(configFile);
                    }
                }
        }