Exemple #1
0
        /// <summary>
        /// Returns the <see cref="ILoggerFactory"/> instance in use.
        /// </summary>
        public static ILoggerFactory GetILoggerFactory()
        {
            if (_initializationState == InitializationState.Uninitialized)
            {
                lock (_locker)
                {
                    if (_initializationState == InitializationState.Uninitialized)
                    {
                        _initializationState = InitializationState.Ongoing;
                        PerformInitialization();
                    }
                }
            }

            switch (_initializationState)
            {
            case InitializationState.Initialized:
                return(_factoryResolver.GetFactory());

            case InitializationState.NOP_Fallback:
                return(_fallbackFactory);

            case InitializationState.Ongoing:
                return(_tempFactory);

            case InitializationState.Failed:
                // Not currently used, safer to use fallback instance
                throw new InvalidOperationException("The slf4net LoggerFactory failed to initialize.  Check the event log for details.");

            default:
                // Should never reach this code...
                throw new InvalidOperationException("_initializationState " + _initializationState + " is not recognized.");
            }
        }
        public void LoggerFactory_SetFactoryResolverTest()
        {
            IFactoryResolver resolver = MoqFactory.FactoryResolver().Object;

            LoggerFactory.SetFactoryResolver(resolver);

            var factory = LoggerFactory.GetILoggerFactory();

            Assert.IsInstanceOfType(factory, resolver.GetFactory().GetType());
        }