public static ILoggingBuilder AddCosmosLogging(this ILoggingBuilder builder, IConfigurationRoot root, Action <ILogServiceCollection> config = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var servicesImpl = new StandardLogServiceCollection(builder.Services, root); config?.Invoke(servicesImpl); builder.Services.TryAdd(ServiceDescriptor.Singleton <ILoggingServiceProvider, MicrosoftLoggingServiceProvider>()); builder.Services.TryAdd(ServiceDescriptor.Singleton(typeof(ILogger <>), typeof(MicrosoftLoggerWrapper <>))); servicesImpl.BuildConfiguration(); servicesImpl.ActiveSinkSettings(); servicesImpl.ActiveOriginConfiguration(); builder.Services.TryAdd(ServiceDescriptor.Singleton(Options.Create((LoggingOptions)servicesImpl.ExposeLogSettings()))); builder.Services.TryAdd(ServiceDescriptor.Singleton(servicesImpl.ExposeLoggingConfiguration())); builder.Services.TryAdd(ServiceDescriptor.Singleton(typeof(StaticServiceResolveInitialization), provider => new StaticServiceResolveInitialization(provider.GetRequiredService <ILoggingServiceProvider>()))); return(builder); }
private static void RegisterCallback(this StandardLogServiceCollection services) { services.AddDependency(s => s.AddSingleton <StandardSecInitializingCallback, IServiceProvider>(provider => { var callback = new StandardSecInitializingCallback(); callback.AppendAction(services.ActiveLogEventEnrichers); callback.AppendAction(() => StaticServiceResolver.SetResolver(provider.GetService <ILoggingServiceProvider>())); return(callback); })); }
private static void BuildAndActiveConfiguration(this StandardLogServiceCollection services) { services.BuildConfiguration(); services.ActiveSinkSettings(); services.ActiveOriginConfiguration(); services.AddDependency(s => s.TryAddSingleton(Options.Options.Create((LoggingOptions)services.ExposeLogSettings()))); services.AddDependency(s => s.TryAddSingleton(services.ExposeLoggingConfiguration())); }