private static void AddTraceIdGenerator(this ConsoleLogServiceCollection servicesImpl)
        {
            servicesImpl.AddDependency(s => s.TryAdd(ServiceDescriptor.Scoped <FallbackTraceIdAccessor, FallbackTraceIdAccessor>()));
            if (!ExpectedTraceIdGeneratorName.HasValue())
            {
                servicesImpl.AddDependency(s => s.TryAdd(ServiceDescriptor.Scoped(__traceIdGeneratorFactory)));
                ExpectedTraceIdGeneratorName.Value = nameof(SystemTraceIdGenerator);
            }

            // ReSharper disable once InconsistentNaming
            ILogTraceIdGenerator __traceIdGeneratorFactory(IServiceProvider provider)
            {
                //1. Get traceIdAccessor and fallbackTraceIdAccessor from ServiceProvider
                var traceIdAccessor  = provider.GetService <TraceIdAccessor>();
                var fallbackAccessor = provider.GetRequiredService <FallbackTraceIdAccessor>();

                //2. Create a new instance of SystemTraceIdGenerator
                var generator = new SystemTraceIdGenerator(traceIdAccessor, fallbackAccessor);

                //3. Scoped update
                LogTraceIdGenerator.ScopedUpdate(generator);

                //4. Done, and return.
                return(generator);
            }
        }
        private static void BuildAndActiveConfiguration(this ConsoleLogServiceCollection services)
        {
            services.BuildConfiguration();
            services.ActiveSinkSettings();
            services.ActiveOriginConfiguration();

            services.AddDependency(s => s.TryAddSingleton(Options.Create((LoggingOptions)services.ExposeLogSettings())));
            services.AddDependency(s => s.TryAddSingleton(services.ExposeLoggingConfiguration()));
        }