public void LoggingWithException()
        {
            var adapter = new ETWLoggerFactoryAdapter();
            var logger  = adapter.GetLogger(string.Empty);

            logger.Debug("This is a test message from ETW source!", new Exception("I am the test exception"));
        }
        public void BasicLoggingScenario()
        {
            var adapter = new ETWLoggerFactoryAdapter();
            var logger  = adapter.GetLogger(string.Empty);

            logger.Warn("This is a test message from ETW source!");
        }
Пример #3
0
        public void CanSetEventSourceToSameInstanceOfSameTypeMultipleTimes()
        {
            var eventSource = new TestEventSource4();
            var adapter     = new ETWLoggerFactoryAdapter();

            //setting the event source to the same *instance* multiple times should not throw
            adapter.EventSource = eventSource;
            adapter.EventSource = eventSource;
        }
        public void LoggingWithCustomEventSource()
        {
            var adapter = new ETWLoggerFactoryAdapter {
                ETWEventSource = new MyCustomEventSource()
            };
            var logger = adapter.GetLogger(string.Empty);

            logger.Warn("This message should never appear in the ETW logs b/c its ignored by the custom EventSource for the sake of the test!");
        }
Пример #5
0
        public void ByDefaultCannotSetEventSourceToSameTypeMultipleTimesOnSingleAdapter()
        {
            //setting the EventSource once is permitted
            var adapter = new ETWLoggerFactoryAdapter {
                EventSource = new TestEventSource3()
            };

            //setting it to another instance of the same type again is not
            Assert.Throws <InvalidOperationException>(() => adapter.EventSource = new TestEventSource3());
        }
Пример #6
0
        public void CanSetDifferentEventSourceTypesOnMultipleAdapters()
        {
            var adapter1 = new ETWLoggerFactoryAdapter {
                EventSource = new TestEventSource1()
            };
            var adapter2 = new ETWLoggerFactoryAdapter {
                EventSource = new TestEventSource2()
            };

            Assert.That(adapter1.EventSource is TestEventSource1);
            Assert.That(adapter2.EventSource is TestEventSource2);
        }
Пример #7
0
        public void ExplicitLoggingLevelImplicitlyIncludesGreaterLoggingLevels()
        {
            Assume.That(LogLevel.Fatal > LogLevel.Debug, "Relationship between FATAL and DEBUG logging levels not as expected.");

            var props = new NameValueCollection {
                { "level", "debug" }
            };
            var adapter = new ETWLoggerFactoryAdapter(props);

            var logger = adapter.GetLogger(string.Empty);

            Assert.That(logger.IsFatalEnabled);
        }
Пример #8
0
        public void CanUseDefaultEventSourceTypeIfNoneSpecifiedInConfigFile()
        {
            const string xml =
                @"<?xml version='1.0' encoding='UTF-8' ?>
                <logging>
                  <factoryAdapter type='Common.Logging.ETW.ETWLoggerFactoryAdapter, Common.Logging.ETWLogger'>
                  </factoryAdapter>
                </logging>";
            var reader  = new StandaloneConfigurationReader(xml);
            var setting = reader.GetSection(null) as LogSetting;


            Assume.That(setting, Is.Not.Null, "Failed to parse config to create expected LogSetting instance.");


            var adapter = new ETWLoggerFactoryAdapter(setting.Properties);

            Assert.That(adapter.EventSource, Is.TypeOf <CommonLoggingEventSource>());
        }
Пример #9
0
        public void CanSetEventSourceToSameTypeMultipleTimesOnMultipleAdapterWithPermitDuplicateSetToTrue()
        {
            const string xml =
                @"<?xml version='1.0' encoding='UTF-8' ?>
                <logging>
                  <factoryAdapter type='Common.Logging.ETW.ETWLoggerFactoryAdapter, Common.Logging.ETWLogger'>
                    <arg key='permitDuplicateEventSourceRegistration' value='true'/>
                  </factoryAdapter>
                </logging>";
            var reader  = new StandaloneConfigurationReader(xml);
            var setting = reader.GetSection(null) as LogSetting;

            Assume.That(setting, Is.Not.Null, "Failed to parse config to create expected LogSetting instance.");

            var adapter1 = new ETWLoggerFactoryAdapter(setting.Properties);
            var adapter2 = new ETWLoggerFactoryAdapter(setting.Properties);

            adapter1.EventSource = new TestEventSource5();
            adapter2.EventSource = new TestEventSource5();
        }
Пример #10
0
        public void CanReadLogLevelFromConfigFile()
        {
            const string xml =
                @"<?xml version='1.0' encoding='UTF-8' ?>
                <logging>
                  <factoryAdapter type='Common.Logging.ETW.ETWLoggerFactoryAdapter, Common.Logging.ETWLogger'>
                    arg key='level' value='warn' />
                  </factoryAdapter>
                </logging>";
            var reader  = new StandaloneConfigurationReader(xml);
            var setting = reader.GetSection(null) as LogSetting;


            Assume.That(setting, Is.Not.Null, "Failed to parse config to create expected LogSetting instance.");


            var adapter = new ETWLoggerFactoryAdapter(setting.Properties);

            Assert.That(adapter.LogLevel.HasFlag(LogLevel.Warn));
        }
        public void CanReadCustomCommonLoggingEventSourceTypeFromConfigFile()
        {
            const string xml =
                @"<?xml version='1.0' encoding='UTF-8' ?>
                <logging>
                  <factoryAdapter type='Common.Logging.ETW.ETWLoggerFactoryAdapter, Common.Logging.ETWLogger'>
                    <arg key='commonLoggingEventSourceType' value='Common.Logging.ETWLogger.Tests.MyCustomEventSource,Common.Logging.ETWLogger.Tests'/>
                  </factoryAdapter>
                </logging>";
            var reader  = new StandaloneConfigurationReader(xml);
            var setting = reader.GetSection(null) as LogSetting;


            Assume.That(setting, Is.Not.Null, "Failed to parse config to create expected LogSetting instance.");


            var adapter = new ETWLoggerFactoryAdapter(setting.Properties);

            Assert.That(adapter.ETWEventSource, Is.TypeOf <MyCustomEventSource>());
        }