예제 #1
0
        static void Main(string[] args)
        {
            configMonitor = new TraceConfigurationMonitor();
            configMonitor.Start();

            StartTimerAndWait();

            configMonitor.Stop();
            configMonitor.Dispose();
        }
예제 #2
0
        public void ConfigFileChangeTriggersReload()
        {
            //var configPath = Assembly.GetExecutingAssembly().Location + ".config";
            //var configPath = @"D:\Code\Diagnostics\EssentialDiagnostics\Essential.Diagnostics.Tests\bin\Debug\Essential.Diagnostics.Tests.dll.config";
            var configPath = ConfigUtility.GetConfigDirFromTestRunDirectory(TestContext.TestRunDirectory);

            Console.WriteLine("Config path: '{0}'", configPath);

            TraceSource source    = new TraceSource("testConfigMonitorSource");
            var         listener1 = source.Listeners.OfType <TestTraceListener>().First();

            listener1.MethodCallInformation.Clear();

            // Verify starting settings
            source.TraceEvent(TraceEventType.Information, 1, "A");
            var events1 = new List <TestTraceListener.TraceInfo>(listener1.MethodCallInformation);

            Assert.AreEqual("InitializeDataInAppConfig", listener1.InitializeData);
            Assert.AreEqual(1, events1.Count);

            using (var file = new FileResetScope(configPath))
            {
                using (var configMonitor = new TraceConfigurationMonitor(configPath, false))
                {
                    configMonitor.Start();

                    var changedConfigText = file.OriginalText.Replace("InitializeDataInAppConfig", "ModifiedInitializeDataChangedByTest");
                    File.WriteAllText(configPath, changedConfigText);

                    // Allow time for async watcher to trigger
                    Thread.Sleep(100);

                    source.TraceEvent(TraceEventType.Information, 1, "B");

                    var listener2 = source.Listeners.OfType <TestTraceListener>().First();
                    var events2   = new List <TestTraceListener.TraceInfo>(listener1.MethodCallInformation);
                    System.Threading.Thread.Sleep(500);
                    Assert.AreEqual("ModifiedInitializeDataChangedByTest", listener2.InitializeData);
                    Assert.AreEqual(1, events2.Count);
                }
            }
        }
        public void ConfigFileChangeTriggersReload()
        {
            //var configPath = Assembly.GetExecutingAssembly().Location + ".config";
            //var configPath = @"D:\Code\Diagnostics\EssentialDiagnostics\Essential.Diagnostics.Tests\bin\Debug\Essential.Diagnostics.Tests.dll.config";
            var configPath = ConfigUtility.GetConfigDirFromTestRunDirectory(TestContext.TestRunDirectory);

            Console.WriteLine("Config path: '{0}'", configPath);

            TraceSource source    = new TraceSource("inmemory2Source");
            var         listener1 = source.Listeners.OfType <InMemoryTraceListener>().First();

            listener1.Clear();

            // Verify starting settings
            source.TraceEvent(TraceEventType.Information, 1, "A");
            var events1 = listener1.GetEvents();

            Assert.AreEqual(666, listener1.Limit);
            Assert.AreEqual(1, events1.Length);

            using (var file = new FileResetScope(configPath))
            {
                using (var configMonitor = new TraceConfigurationMonitor(configPath, false))
                {
                    configMonitor.Start();

                    var changedConfigText = file.OriginalText.Replace("666", "777");
                    File.WriteAllText(configPath, changedConfigText);

                    // Allow time for async watcher to trigger
                    Thread.Sleep(100);

                    source.TraceEvent(TraceEventType.Information, 1, "B");

                    var listener2 = source.Listeners.OfType <InMemoryTraceListener>().First();
                    var events2   = listener2.GetEvents();
                    System.Threading.Thread.Sleep(500);
                    Assert.AreEqual(777, listener2.Limit);
                    Assert.AreEqual(1, events2.Length);
                }
            }
        }
        public void ConfigFileChangeTriggersReload()
        {
            //var configPath = Assembly.GetExecutingAssembly().Location + ".config";
            //var configPath = @"D:\Code\Diagnostics\EssentialDiagnostics\Essential.Diagnostics.Tests\bin\Debug\Essential.Diagnostics.Tests.dll.config";
            var configPath = ConfigUtility.GetConfigDirFromTestRunDirectory(TestContext.TestRunDirectory);
            Console.WriteLine("Config path: '{0}'", configPath);

            TraceSource source = new TraceSource("inmemory2Source");
            var listener1 = source.Listeners.OfType<InMemoryTraceListener>().First();
            listener1.Clear();

            // Verify starting settings
            source.TraceEvent(TraceEventType.Information, 1, "A");
            var events1 = listener1.GetEvents();
            Assert.AreEqual(666, listener1.Limit);
            Assert.AreEqual(1, events1.Length);

            using (var file = new FileResetScope(configPath))
            {
                using (var configMonitor = new TraceConfigurationMonitor(configPath, false))
                {
                    configMonitor.Start();

                    var changedConfigText = file.OriginalText.Replace("666", "777");
                    File.WriteAllText(configPath, changedConfigText);

                    // Allow time for async watcher to trigger
                    Thread.Sleep(100);

                    source.TraceEvent(TraceEventType.Information, 1, "B");

                    var listener2 = source.Listeners.OfType<InMemoryTraceListener>().First();
                    var events2 = listener2.GetEvents();
                    System.Threading.Thread.Sleep(500);
                    Assert.AreEqual(777, listener2.Limit);
                    Assert.AreEqual(1, events2.Length);
                }
            }
        }