/// <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()); }