private static void RegisterCoreComponents(this ZkWebLogServiceCollection loggingServices, Action <ILogServiceCollection> serviceConfigure) { using (loggingServices) { serviceConfigure?.Invoke(loggingServices); loggingServices.BuildConfiguration(); loggingServices.ActiveSinkSettings(); loggingServices.ActiveOriginConfiguration(); } }
public static IContainer RegisterCosmosLogging(this IContainer ioc, Action <ILogServiceCollection> config) { var serviceImpl = new ZkWebLogServiceCollection(); config?.Invoke(serviceImpl); ioc.Register <ILoggingServiceProvider, ZKWebLoggingServiceProvider>(ReuseType.Singleton); serviceImpl.BuildConfiguration(); serviceImpl.ActiveSinkSettings(); serviceImpl.ActiveOriginConfiguration(); ioc.RegisterFromServiceCollection(serviceImpl.ExposeServices()); ioc.RegisterInstance(Options.Create((LoggingOptions)serviceImpl.ExposeLogSettings()), ReuseType.Singleton); ioc.RegisterInstance(serviceImpl.ExposeLoggingConfiguration(), ReuseType.Singleton); StaticServiceResolver.SetResolver(ioc.Resolve <ILoggingServiceProvider>()); return(ioc); }
/// <summary> /// Register Cosmos Logging to ZKWeb IOC /// </summary> /// <param name="ioc"></param> /// <param name="serviceConfigure"></param> /// <returns></returns> public static IContainer RegisterCosmosLogging(this IContainer ioc, Action <ILogServiceCollection> serviceConfigure) { var loggingServices = new ZkWebLogServiceCollection(); loggingServices.RegisterCoreComponents(serviceConfigure); ioc.Register <ILoggingServiceProvider, ZKWebLoggingServiceProvider>(ReuseType.Singleton); ioc.Register <IPropertyFactoryAccessor, ShortcutPropertyFactoryAccessor>(); ioc.RegisterFromServiceCollection(loggingServices.OriginalServices); ioc.RegisterTraceIdGenerator(); ioc.RegisterInstance(Options.Create((LoggingOptions)loggingServices.ExposeLogSettings()), ReuseType.Singleton); ioc.RegisterInstance(loggingServices.ExposeLoggingConfiguration(), ReuseType.Singleton); StaticServiceResolver.SetResolver(ioc.Resolve <ILoggingServiceProvider>()); loggingServices.ActiveLogEventEnrichers(); return(ioc); }